【发布时间】:2019-05-15 19:14:29
【问题描述】:
我有一个架构,其中每一行包含多列数组,我想独立地分解每个数组列。
假设我们有列:
**userId someString varA varB someBool
1 "example1" [0,2,5] [1,2,9] true
2 "example2" [1,20,5] [9,null,6] false
我想要一个输出:
userId someString varA varB someBool
1 "example1" 0 null true
1 "example1" 2 null true
1 "example1" 5 null true
1 "example1" 1 null true
1 "example1" 20 null true
1 "example1" 5 null true
2 "example2" null 1 false
2 "example2" null 2 false
2 "example2" null 9 false
2 "example2" null 9 false
2 "example2" null null false
2 "example2" null 6 false
想法?
(哦,我正在尝试这样做,所以我不必在架构更改时更新代码,而且还因为 actual 架构有点大......)
PS - this 的道具非常相似但不同的问题,我无耻地窃取了示例数据。
编辑:@oliik 获胜,但是,用df.flatMap 来解决这个问题也很棒(主要是因为我仍然不了解flatMap)
【问题讨论】:
-
我想知道这是否可以动态完成?
-
你如何得到例如这一行
2 "example2" 1 null true?在源表someBool==false <=> userId==2 -
@ollik1 错字:P
标签: scala apache-spark