我有一个包含WrappedArrays的两列(“features1”和“features2”)的DataFrame。
我需要将两列组合成第三列,其中包含前两列的合并内容作为WrappedArray。
我该怎么做?
我正在使用Scala而不是PySpark
答案 0 :(得分:2)
我没有找到另一种方式而不是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的方法可能更短。