源json数据
{"ID": "ABC", "Amt": 23077, "col": [{"Seq": 1, "Pct": 1.5, "Sh": 1},{"Seq": 2, "Pct": 1.2, "Sh": 2.5}]}
下部结构
ID:string
Amt:long
Col:array
element:struct
Seq:int
Pct:double
Sh:double
我有一个Dataframe下面的输出
+----+-------+-----------------------------+
|ID |Amt |col |
+----+-------+-----------------------------+
|ABC |23077 |[[1, 1.5, 1], [2, 1.2, 2.5]] |
+------------+-----------------------------+
我需要将amt列添加到数组中每个元素末尾的列中。
+----+-------+-------------------------------------------+
|ID |Amt |col1 |
+----+---------------------------------------------------+
|ABC |23077 |[[1, 1.5, 1, 23077], [2, 1.2, 2.5, 23077]] |
+----+-------+-------------------------------------------+
1条答案
按热度按时间8tntrjer1#
如果spark版本>=2.4,则可以使用
transform
向结构添加元素:对于较旧的spark版本,可以分解结构数组并重建它们: