【发布时间】:2020-04-29 13:46:42
【问题描述】:
我有两个数据帧,DF1 和 DF2,DF1 是存储来自 DF2 的任何附加信息的主数据。
假设 DF1 的格式如下,
Item Id | item | count
---------------------------
1 | item 1 | 2
2 | item 2 | 3
1 | item 3 | 2
3 | item 4 | 5
DF2 包含 DF1 中已经存在的 2 个项目和两个新条目。 (itemId和item被认为是一个单独的组,可以作为join的key)
Item Id | item | count
---------------------------
1 | item 1 | 2
3 | item 4 | 2
4 | item 4 | 4
5 | item 5 | 2
我需要合并两个数据框,以便增加现有项目计数并插入新项目。
结果应该是这样的:
Item Id | item | count
---------------------------
1 | item 1 | 4
2 | item 2 | 3
1 | item 3 | 2
3 | item 4 | 7
4 | item 4 | 4
5 | item 5 | 2
我有一种方法可以做到这一点,不确定它是否有效或正确的方法
temp1 = df1.join(temp,['item_id','item'],'full_outer') \
.na.fill(0)
temp1\
.groupby("item_id", "item")\
.agg(F.sum(temp1["count"] + temp1["newcount"]))\
.show()
【问题讨论】:
-
所以您的“项目 ID”不是唯一的?
-
是的,它不是唯一的
-
@Ramesh Maharjan,我认为你们俩都提出了相同的答案。你的回答没有错。
-
我知道它们是一样的。这就是为什么我已经问了你几千次了。顺便说一句,我先回答了,但因为你忽略了我。我刚刚删除了我的帖子。谢谢:)
标签: python apache-spark pyspark pyspark-sql