Wie verwende ich Fensterfunktionen in PySpark mit DataFrames?

Versuche herauszufinden, wie Fensterfunktionen in PySpark verwendet werden. Hier ist ein Beispiel dafür, was ich tun möchte: Zählen Sie einfach, wie oft ein Benutzer ein "Ereignis" hat (in diesem Fall ist "dt" ein simulierter Zeitstempel).

from pyspark.sql.window import Window
from pyspark.sql.functions import count

df = sqlContext.createDataFrame([{"id": 123, "dt": 0}, {"id": 123, "dt": 1}, {"id": 234, "dt":0}, {"id": 456, "dt":0}, {"id": 456, "dt":1}, {"id":456, "dt":2}])
df.select(["id","dt"], count("dt").over(Window.partitionBy("id").orderBy("dt")).alias("count")).show()

Dies erzeugt einen Fehler. Wie werden Fensterfunktionen richtig verwendet? Ich habe gelesen, dass 1.4.1 (die Version, die wir verwenden müssen, da dies bei AWS Standard ist) in der Lage sein sollte, sie mit der DataFrame-API auszuführen.

FWIW, die Dokumentation zu diesem Thema ist ziemlich spärlich. Und ich hatte Probleme, Beispiele zum Laufen zu bringen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage