SQL con dot notation per aggregazioni
Il codice seguente usa SQL per impostare il valore di un dataframe chiamato df.
df = spark.sql("""
SELECT *,
LEAD(time,1) OVER(PARTITION BY train_id ORDER BY time) AS time_next
FROM schedule
""")
- La clausola
LEADha una funzione equivalente inpyspark.sql.functions. - Le clausole
PARTITION BYeORDER BYhanno ciascuna una funzione equivalente in dot notation che si invoca sull'oggettoWindow. - Sono disponibili i seguenti import:
- from pyspark.sql import Window
- from pyspark.sql.functions import lead
Questo esercizio fa parte del corso
Introduzione a Spark SQL in Python
Istruzioni dell'esercizio
- Crea un dataframe chiamato
dot_dfche contenga lo stesso risultato didf, usando la dot notation invece di SQL.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Obtain the identical result using dot notation
dot_df = df.withColumn('time_next', ____('time', 1)
.over(____.____('train_id')
.____('time')))