CommencerCommencer 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

Introduction à Spark SQL en Python

Afficher le cours

Instructions

  • 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 cet exemple de code.

# 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