如何在火花中合并两个不同的数据帧? [复制]

Posted

技术标签:

【中文标题】如何在火花中合并两个不同的数据帧? [复制]【英文标题】:How to union two different data frames in spark? [duplicate] 【发布时间】:2018-03-24 04:49:51 【问题描述】:

我希望将两个数据框连接在一起。第一个包含大量商店,由它们的 id 表示,并保存有关它们的信息,例如销售数量 (weekly_sales) 和代表该周的日期。

第二个,包含一些商店的其他数据,在他们的某些周内,例如该周的燃料价格。

我需要创建一个将两者结合起来的数据框。因此,对于第一个数据集中也位于第二个数据集中的每个商店 ID 和日期组合,我将拥有以下内容,即第一个数据集,并将第二个数据集中的温度和燃料价格添加到正确的行来自第一个数据集:

由于第三个条目的商店 ID 和日期组合未在第一个和第二个数据集之间共享,因此我只需将新列设为 NA。

我将如何在 spark 中执行此操作?我知道的唯一联合只是基于相等数据集的基本连接。

文本中的数据集:

Store   Dept    Date    Weekly_Sales    IsHoliday
1       1   05/02/2010   24924.5        FALSE
1       1   12/02/2010   46039.49       TRUE
1       1   19/02/2010   41595.55       FALSE
1       1   26/02/2010   19403.54       FALSE
1       1   05/03/2010   21827.9        FALSE


Store   Date    Temperature Fuel_Price
1     05/02/2010    42.31     2.572
1     12/02/2010    38.51     2.548
1     19/02/2010    39.93     2.514
1     26/02/2010    46.63     2.561
1     05/03/2010    46.5      2.625
1     12/03/2010    57.79     2.667

Store   Dept    Date    Weekly_Sales    IsHoliday   Temparat Fuel_Price
1       1     05/02/2010    24924.5      FALSE      42.31      2.572
1       1     12/02/2010    46039.49     TRUE       38.51      2.548
1       1     06/02/2010    41595.55     FALSE      NA         NA
1       1     26/02/2010    19403.54     FALSE      
1       1     05/03/2010    21827.9      FALSE      
1       1     12/03/2010    21043.39     FALSE

【问题讨论】:

【参考方案1】:

为此,您可以使用Storedate 字段作为join

df1.join(df2, Seq("Store", "date"), "left")

这应该会给你所需的输出。

【讨论】:

以上是关于如何在火花中合并两个不同的数据帧? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将火花数据帧的“第一”行复制到另一个数据帧?为啥我的最小示例失败了?

如何截断火花数据框列的值? [复制]

Pandas:如何在两个不同的重叠时间序列上合并两个数据帧

如何合并两个不同的数据帧,时间戳略有不同

如何在不合并索引的情况下连接具有不同多索引的两个数据帧?

火花连接数据帧和合并模式