【发布时间】:2018-08-30 06:20:12
【问题描述】:
我想在 spark 中合并多个 ArrayType[StringType] 列来创建一个 ArrayType[StringType]。为了合并两列,我在这里找到了解决方案:
Merge two spark sql columns of type Array[string] into a new Array[string] column
但是,如果我不知道编译时的列数,我该如何进行组合。在运行时,我会知道要合并的所有列的名称。
一种选择是使用上述stackoverflow问题中定义的UDF,在一个循环中多次添加两列。但这涉及对整个数据帧的多次读取。有没有办法一次性做到这一点?
+------+------+---------+
| col1 | col2 | combined|
+------+------+---------+
| [a,b]| [i,j]|[a,b,i,j]|
| [c,d]| [k,l]|[c,d,k,l]|
| [e,f]| [m,n]|[e,f,m,n]|
| [g,h]| [o,p]|[g,h,o,p]|
+------+----+-----------+
【问题讨论】:
标签: scala apache-spark apache-spark-sql