LoslegenKostenlos loslegen

Aggregat-Punkt-SQL

Der folgende Code verwendet SQL, um den Wert eines DataFrames namens df zu setzen.

df = spark.sql("""
SELECT *, 
LEAD(time,1) OVER(PARTITION BY train_id ORDER BY time) AS time_next 
FROM schedule
""")
  • Die LEAD-Klausel hat eine entsprechende Funktion in pyspark.sql.functions.
  • Die Klauseln PARTITION BY und ORDER BY haben jeweils eine entsprechende Funktion in der Punktnotation, die auf dem Window-Objekt aufgerufen wird.
  • Die folgenden Importe sind verfügbar:
    • from pyspark.sql import Window
    • from pyspark.sql.functions import lead

Diese Übung ist Teil des Kurses

Einführung in Spark SQL mit Python

Kurs anzeigen

Anleitung zur Übung

  • Erstelle einen DataFrame namens dot_df, der mit Punktnotation statt SQL dasselbe Ergebnis wie df enthält.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Obtain the identical result using dot notation 
dot_df = df.withColumn('time_next', ____('time', 1)
        .over(____.____('train_id')
        .____('time')))
Code bearbeiten und ausführen