Aan de slagGa gratis aan de slag

Aggregatie met dot-SQL

De volgende code gebruikt SQL om de waarde te zetten van een dataframe genaamd df.

df = spark.sql("""
SELECT *, 
LEAD(time,1) OVER(PARTITION BY train_id ORDER BY time) AS time_next 
FROM schedule
""")
  • De LEAD-clausule heeft een equivalente functie in pyspark.sql.functions.
  • De PARTITION BY- en ORDER BY-clausules hebben elk een equivalente dotnotatiefunctie die je aanroept op het Window-object.
  • De volgende imports zijn beschikbaar:
    • from pyspark.sql import Window
    • from pyspark.sql.functions import lead

Deze oefening maakt deel uit van de cursus

Introductie tot Spark SQL in Python

Cursus bekijken

Oefeninstructies

  • Maak een dataframe dot_df dat exact hetzelfde resultaat bevat als df, maar gebruik dotnotatie in plaats van SQL.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Obtain the identical result using dot notation 
dot_df = df.withColumn('time_next', ____('time', 1)
        .over(____.____('train_id')
        .____('time')))
Code bewerken en uitvoeren