如何使用scala将多个sparkDataframe列合并到一个列表中?

brvekthn  于 2021-07-14  发布在  Spark
关注(0)|答案(1)|浏览(740)

我在scala中有以下sparkDataframe:

+---------+--------------------+--------------------+--------------------+
|       id|           col_str_1|           col_str_2|            col_list|
+---------+--------------------+--------------------+--------------------+
|        1|                   A|                   C|              [E, F]|
|        2|                   B|                   D|              [G, H]|
+---------+--------------------+--------------------+--------------------+

其中,列1和列2的类型为stirng,列列表的类型为list[string]。
我需要一种将此Dataframe转换为以下内容的方法:

+---------+--------------------+
|       id|            col_list|
+---------+--------------------+
|        1|        [E, F, A, C]|
|        2|        [G, H, B, D]|
+---------+--------------------+

你知道吗?谢谢您。

6l7fqoea

6l7fqoea1#

你可以用 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]|
+---+------------+

相关问题