【发布时间】:2016-05-12 08:50:51
【问题描述】:
我有以下数据框(数组内的值是字符串):
+--------------------+--------------------+
| col1| col2|
+--------------------+--------------------+
| [value1, value2]| [value3,value4]|
| [value5]| [value6]|
+--------------------+--------------------+
如何使用包含两者所有值的新数组创建新列
+--------------------+--------------------+------------------------------+
| col1| col2| new |
+--------------------+--------------------+------------------------------+
| [value1, value2]| [value3,value4]|[value1, value2,value3,value4]|
| [value5]| [value6]| [value5,value6]|
+--------------------+--------------------+------------------------------+
我尝试了以下方法:
def add_function(col1,col2):
return col1+col2
udf_add = udf(add_function,ArrayType(StringType()))
dftrial.withColumn("new",udf_add("col1","col2")).show(2)
它确实按照需要完成任务。但我不明白为什么当我将add_function 修改为:
def add_function(col1,col2):
return col1.extend(col2)
它返回null 值。为什么?
我的主要问题是:是否有另一种方法来实现这个任务,任何已经实现的功能?我找到了concat,但它似乎只适用于字符串。
【问题讨论】: