1

SQL データフレームdfが次のようになっているとします。

| id | v1 | v2 |
|----+----+----|
|  1 |  0 |  3 |
|  1 |  0 |  3 |
|  1 |  0 |  8 |
|  4 |  1 |  2 |

出力を次のようにしたい:

| id |  v1  |  list(v2)  |
|----+----+--------------|
|  1 |  [0] |    [3,3,8] |
|  4 |  [1] |        [2] |

Hive を使用せずに SQL データフレームでこれを行う最も簡単な方法は何ですか?

1) どうやら、Hive のサポートにより、関数を簡単に使用collect_set()およびcollect_list()集約できます。しかし、これらの関数はプレーンな Spark SqlContext では機能しません。

2) 別の方法として UDAF を作成することもできますが、必要なコードの量を考えると、このような単純な集約にはやり過ぎのようです。

3) df.rdd を使用してからgroupBy()関数を使用できます。これが私の最後の手段であります。実際にRDDをDFに変換してデータ操作を簡単にしましたが、明らかにそうではありません...

私が見逃した他の簡単な方法はありますか?

4

0 に答える 0