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 inpyspark.sql.functions. - De
PARTITION BY- enORDER BY-clausules hebben elk een equivalente dotnotatiefunctie die je aanroept op hetWindow-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
Oefeninstructies
- Maak een dataframe
dot_dfdat exact hetzelfde resultaat bevat alsdf, 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')))