从Spark DataFrame中提取数组列



我的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

相关内容

  • 没有找到相关文章

最新更新