特定のウィンドウ内で行内に最も頻繁に発生するStringを取得し、この値を新しい行に入れたいと考えています。 (Pysparkを使用しています)行の中で最も頻繁に値を集計するスパークウィンドウ関数
これは私のテーブルのようです。
window label value
123 a 54
123 a 45
123 a 21
123 b 99
123 b 78
私はいくつかの凝集をやっているし、現時点では私はwindow
とlabel
の両方でグループ化しています。
sqlContext.sql(SELECT avg(value) as avgValue FROM table GROUP BY window, label)
これは、ウィンドウ= 123平均とラベル= Aを返し、私がやろうとしていますどのようなウィンドウ= 123とラベル= B
平均は、最も頻繁に文字列の降順を発生順label
ですので、私のSQLステートメントで行うことができますSELECT first(label) as majLabel, avg(value) as avgValue FROM table GROUP BY window
私はこれをウィンドウ関数で実行しようとしていますが、それほどかなり進んでいません。
group = ["window"]
w = (Window().partitionBy(*group))
でウィンドウを選択し、これがそうです何かのようにアプローチする方法を知っているだろうか? Sparkのウィンドウ関数に関する専門知識があれば、D – other15