首页 > 解决方案 > 如何将数据帧数组转换为单个数据帧?

问题描述

我有一个array名为“”的数据框dataFrames,如下所示:

dataFrames(0)
+----------+--------------------+---------+-------------+
|Periodo   |              frutas|freq     |prods_qty    |
+----------+--------------------+---------+-------------+
|         1|Apple, Watermelon   |        1|            2|
|         1|Banana, StrawBerry  |        2|            2|
+----------+--------------------+---------+-------------+

dataFrames(1)
+----------+--------------------+---------+-------------+
|Periodo   |              frutas|freq     |prods_qty    |
+----------+--------------------+---------+-------------+
|         2|Naranjas, Fresas    |        7|            2|
|         2|Pineapple, Apples   |        9|            2|
+----------+--------------------+---------+-------------+

好吧,我需要一个dataframe这样的单曲:

+----------+--------------------+---------+-------------+
|Periodo   |              frutas|freq     |prods_qty    |
+----------+--------------------+---------+-------------+
|         1|Apple, Watermelon   |        1|            2|
|         1|Banana, StrawBerry  |        2|            2|
|         2|Naranjas, Fresas    |        7|            2|
|         2|Pineapple, Apples   |        9|            2|
+----------+--------------------+---------+-------------+

对于此示例,数组的长度为 1,但数组可以是任意大小。

有可能实现这一点......或者我需要将数据帧存储到配置单元表中?

提前致谢

标签: scalaapache-sparkdataframehive

解决方案


您可以reduce使用 DataFrame 的序列或数组unionAll

val dfs = Array(df1, df2, df3)

val all = dfs.reduce(_ unionAll _)

推荐阅读