如何使用Scala将多个spark dataframe列合并到一个列表中?
我在Scala中有以下Spark数据帧:如何使用Scala将多个spark dataframe列合并到一个列表中?,scala,dataframe,apache-spark,apache-spark-sql,Scala,Dataframe,Apache Spark,Apache Spark Sql,我在Scala中有以下Spark数据帧: +---------+--------------------+--------------------+--------------------+ | id| col_str_1| col_str_2| col_list| +---------+--------------------+--------------------+--------------------+ |
+---------+--------------------+--------------------+--------------------+
| id| col_str_1| col_str_2| col_list|
+---------+--------------------+--------------------+--------------------+
| 1| A| C| [E, F]|
| 2| B| D| [G, H]|
+---------+--------------------+--------------------+--------------------+
其中col_str_1和col_str_2为Stirng类型,col_list为list[String]类型
我想要一种将此数据帧转换为以下内容的方法:
+---------+--------------------+
| id| col_list|
+---------+--------------------+
| 1| [E, F, A, C]|
| 2| [G, H, B, D]|
+---------+--------------------+
有什么想法吗?
谢谢。您可以使用
concat
将元素附加到数组列:
val df2 = df.select(
col("id"),
concat(
col("col_list"),
array(col("col_str_1"), col("col_str_2"))
).as("col_list")
)
df2.show
+---+------------+
| id| col_list|
+---+------------+
| 1|[E, F, A, C]|
| 2|[G, H, B, D]|
+---+------------+