我有一个包含WrappedArrays的两列("features1"one_answers"features2")的DataFrame。
我需要将这两列合并成第三列,其中包含前两列的合并内容作为WrappedArray。
我该怎么做?
我用的是Scala而不是PySpark
我没有找到除了udf之外的其他方法,令人惊讶的是
def catArray[A](a:Seq[A], b: Seq[A]): Seq[A] = a ++ b
val catArrayUdf = udf { catArray[Int] _ }
然后scala> sc.parallelize(List((Seq(1,2),Seq(3,4))))
.toDF("A","B")
.withColumn("cat",catArray('A,'B))
.show(false)
+------+------+------------+
|A |B |cat |
+------+------+------------+
|[1, 2]|[3, 4]|[1, 2, 3, 4]|
+------+------+------------+
也许有一个更短的方法来定义基于++
的UDF。