試圖找出如何在PySpark中使用窗口函數。以下是我希望能夠做的一個例子,只需計算用戶發生「事件」的次數(在本例中,「dt」是模擬的時間戳)。如何使用DataFrame在PySpark中使用窗口函數?
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()
這產生了一個錯誤。什麼是使用窗口函數的正確方法?我讀到1.4.1(我們需要使用的版本,因爲它是AWS的標準)應該可以通過DataFrame API來完成。
FWIW,文檔在這個問題上相當稀少。我無法得到任何實際運行的例子。
重新文檔來幫助你,我發現這是一個有用的介紹窗口函數在pyspark:https://databricks.com/blog/2015/07/15/introducing-window-functions-in-spark-sql .html – snark