如何使用Scala将多个spark dataframe列合并到一个列表中?

如何使用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| +---------+--------------------+--------------------+--------------------+ |

我在Scala中有以下Spark数据帧:

+---------+--------------------+--------------------+--------------------+
|       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]|
+---+------------+