Aggregering med dot notation och SQL
Följande kod använder SQL för att sätta värdet på en dataram som heter df.
df = spark.sql("""
SELECT *,
LEAD(time,1) OVER(PARTITION BY train_id ORDER BY time) AS time_next
FROM schedule
""")
LEAD-satsen har en motsvarande funktion ipyspark.sql.functions.- Satserna
PARTITION BYochORDER BYhar vardera en motsvarande dot notation-funktion som anropas påWindow-objektet. - Följande importer är tillgängliga:
- from pyspark.sql import Window
- from pyspark.sql.functions import lead
Den här övningen är en del av kursen
Introduktion till Spark SQL i Python
Övningsinstruktioner
- Skapa en dataram som heter
dot_dfoch som innehåller exakt samma resultat somdf, men med dot notation i stället för SQL.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Obtain the identical result using dot notation
dot_df = df.withColumn('time_next', ____('time', 1)
.over(____.____('train_id')
.____('time')))