CommencerCommencez gratuitement

Agrégat SQL en notation par points

Le code suivant utilise du SQL pour définir la valeur d’un DataFrame appelé df.

df = spark.sql("""
SELECT *, 
LEAD(time,1) OVER(PARTITION BY train_id ORDER BY time) AS time_next 
FROM schedule
""")
  • La clause LEAD possède une fonction équivalente dans pyspark.sql.functions.
  • Les clauses PARTITION BY et ORDER BY ont chacune une fonction équivalente en notation par points, à appeler sur l’objet Window.
  • Les imports suivants sont disponibles :
    • from pyspark.sql import Window
    • from pyspark.sql.functions import lead

Cet exercice fait partie du cours

<cours>Introduction à Spark SQL en Python</cours>
Voir le cours

Instructions de l’exercice

  • Créez un DataFrame nommé dot_df qui produise exactement le même résultat que df, en utilisant la notation par points au lieu du SQL.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Obtain the identical result using dot notation 
dot_df = df.withColumn('time_next', ____('time', 1)
        .over(____.____('train_id')
        .____('time')))
Modifier et exécuter le code