ウィンドウ関数 ( などfirst, last, lag, lead
) は でサポートされていpyspark
ますか?
たとえば、ある列でグループ化し、別の列で並べ替えてから、SparkSQL またはデータ フレームで各グループの最初の行を選択する (ウィンドウ関数のように) にはどうすればよいでしょうか?
pyspark.sql.functions
クラスに集計関数first
とが含まれていることがわかりlast
ましたが、クラスには使用できませんgroupBy
。
ウィンドウ関数 ( などfirst, last, lag, lead
) は でサポートされていpyspark
ますか?
たとえば、ある列でグループ化し、別の列で並べ替えてから、SparkSQL またはデータ フレームで各グループの最初の行を選択する (ウィンドウ関数のように) にはどうすればよいでしょうか?
pyspark.sql.functions
クラスに集計関数first
とが含まれていることがわかりlast
ましたが、クラスには使用できませんgroupBy
。
spark 1.4 以降、ウィンドウ関数を使用できます。pyspark では、これは次のようになります。
from pyspark.sql.functions import rank
from pyspark.sql import Window
data = sqlContext.read.parquet("/some/data/set")
data_with_rank = data.withColumn("rank", rank().over(Window.partitionBy("col1").orderBy(data["col2"].desc())))
data_with_rank.filter(data_with_rank["rank"] == 1).show()