scala-如何使用concat_ws连接DataFrame的列?

时间:2018-08-03 15:22:29

标签: scala apache-spark dataframe apache-spark-sql

我想串联我的数据框的列。我写了一个Udf来实现这一点,但是正如我所看到的,concat_ws在传递Array[String]时期望列。如何正确传递DataFrame的列?

val columns = salesDF.columns
val concatColumns = udf((arr: Seq[String]) => arr.mkString(" "))

salesDF.select(concat_ws(",", concatColumns(columns)))

1 个答案:

答案 0 :(得分:2)

您只需将选择作为Array[Column]传递即可:

import org.apache.spark.sql.functions.{col,concat_ws}

val selection = salesDF.columns.map(col)
salesDF.select(concat_ws(",", selection : _*))