如何将包含 WrappedArrays 的 Spark SchemaRDD 中的两列与组合的 WrappedArray 组合成第三列?

How do I combine two columns in a Spark SchemaRDD containing WrappedArrays into a 3rd column with the combined WrappedArray?

我有一个包含两列("features1" 和 "features2")的 DataFrame,其中包含 WrappedArrays。

我需要将这两列合并为第三列,其中包含前两列的合并内容作为 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。