如何将包含WrappedArray的Spark SchemaRDD中的两列组合为具有组合WrappedArray的第三列



我有一个包含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。

相关内容

  • 没有找到相关文章

最新更新