我的Spark DataFrame具有数组列,我必须通过从单个数组列中提取数据来生成新列。是否有任何可用的方法。
id Amount
10 [Tax:10,Total:30,excludingTax:20]
11 [Total:30]
12 [Tax:05,Total:35,excludingTax:30]
我必须生成此数据框。
ID Tax Total
10 10 30
11 0 30
12 05 35
如果您确定知道[税:10,总计:30,ExcrudingTax:20]是唯一按照相同顺序的字段,您始终可以在整个数据框架上映射并将其提取为金额[0],金额[1] ...
然后将它们作为案例类的实例分配,最后转换回数据框。
唯一的一件事,如果金额只有2个值,您必须全心全意,您不拨打金额[3]。通过检查数组长度很容易实现。
另外,如果您不知道订单。最好的方法是使用JSONRDD。然后通过JSON对象循环解析它们并创建一个新的行。最终将其转换为dataFrame