2
私はpysparkのデータフレーム内の次のデータがend_stats_df
呼ばれています:複数の列にPyspark UDAFを書き込む方法は?
values start end cat1 cat2
10 1 2 A B
11 1 2 C B
12 1 2 D B
510 1 2 D C
550 1 2 C B
500 1 2 A B
80 1 3 A B
をそして、私は次のようにそれを集約したい:
- を私は「開始」と「終了」を使用したいです行のグループごとに集計キー
- としてカラム、私は次のことを実行する必要があります。
- 両方01に一意の値の数を計算しますそのグループのと
cat2
start
= 1およびend
= 2の場合は、A、B、C、Dがあるため、この数値は4になります。この数値はn
(この例ではn = 4)として保存されます。 values
フィールドの場合、各グループについて、values
をソートして、すべてn-1
の値を選択する必要があります。ここで、n
は上記の最初の操作から保存された値です。- 集計の最後には、上記の操作の後に
cat1
とcat2
にあるものは本当に気にしません。
- 両方01に一意の値の数を計算しますそのグループのと
上記の例からの出力例は次のとおりです。
values start end cat1 cat2
12 1 2 D B
550 1 2 C B
80 1 3 A B
私はpysparkのデータフレームを使用して実行するにはどうすればよいですか?カスタムUDAFを使用する必要があると思います。
これは素晴らしいことですが、私はそれを試していただき、ありがとうございます。 – Hunle
あなたの例では 'f'とは何ですか? – Hunle
心配しないで、私はそれがpysparkインポートからの "関数"であることがわかります。 – Hunle