如何使用java在spark数据框中连接所有列?

如何使用java在spark数据框中连接所有列?,java,apache-spark,Java,Apache Spark,这是我对两个特定列所做的操作: dataSet.withColumn("colName", concat(dataSet.col("col1"), lit(","),dataSet.col("col2") )); 但是dataSet.columns()retsting数组,而不是Column数组。 我应该如何创建列表 谢谢 简单方法-不要使用df.列使用concat\ws(“,”,“*”),检查下面的代码 df.w

这是我对两个特定列所做的操作:

dataSet.withColumn("colName", concat(dataSet.col("col1"), lit(","),dataSet.col("col2") ));
但是
dataSet.columns()
retsting数组,而不是Column数组。 我应该如何创建
列表


谢谢

简单方法-不要使用
df.列
使用
concat\ws(“,”,“*”)
,检查下面的代码

df.withColumn("colName",expr("concat_ws(',',*)")).show(false)
+---+--------+---+-------------+
|id |name    |age|colName      |
+---+--------+---+-------------+
|1  |Srinivas|29 |1,Srinivas,29|
|2  |Ravi    |30 |2,Ravi,30    |
+---+--------+---+-------------+

简单方法-不使用
df。列
使用
concat\ws(“,”,“*”)
,检查下面的代码

df.withColumn("colName",expr("concat_ws(',',*)")).show(false)
+---+--------+---+-------------+
|id |name    |age|colName      |
+---+--------+---+-------------+
|1  |Srinivas|29 |1,Srinivas,29|
|2  |Ravi    |30 |2,Ravi,30    |
+---+--------+---+-------------+

Java有更详细的语法。 试试这个-

df.withColumn(“colName”,concat_ws(“,”),toScalaSeq(Arrays.stream(df.columns()).map(functions::col).collect(Collectors.toList()));
使用下面的实用程序将java列表转换为scala seq-

Buffer-toScalaSeq(列表){
返回JavaConversions.asScalaBuffer(列表);
}

Java有更详细的语法。 试试这个-

df.withColumn(“colName”,concat_ws(“,”),toScalaSeq(Arrays.stream(df.columns()).map(functions::col).collect(Collectors.toList()));
使用下面的实用程序将java列表转换为scala seq-

Buffer-toScalaSeq(列表){
返回JavaConversions.asScalaBuffer(列表);
}