如何将包含 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。
我有一个包含两列("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。