【发布时间】:2019-02-04 21:40:55
【问题描述】:
以下内容适用于动态列生成:
import org.apache.spark.sql.functions._
import sqlContext.implicits._
import org.apache.spark.sql.DataFrame
val input = sc.parallelize(Seq(
("a", "5a", "7w", "9", "a12", "a13")
)).toDF("ID", "var1", "var2", "var3", "var4", "var5")
val columns_to_concat = input.columns
input.select(concat(columns_to_concat.map(c => col(c)): _*).as("concat_column")).show(false)
返回:
+-------------+
|concat_column|
+-------------+
|a5a7w9a12a13 |
+-------------+
如何使用 foldLeft, reduceLeft 做到这一点 - 同时保留动态列生成?
我总是收到错误或返回空值。虽然 concat 就足够了,但我很好奇 fold 等如何工作。
【问题讨论】:
标签: scala apache-spark