我有两个数据框,如下所示。如果有人买东西,我们也可以推荐类似的产品。
df1列出了每个人购买的物品。df2推荐了附加产品。例如,“ Gopu”购买面包,那么我必须推荐“黄油”和“果酱”
如果没有(来自df2的)added_product项,则该项不必出现在输出中。对于(例如)“ Gopu”购买了“饼干”项目,但没有df2推荐的附加项目。因此,它不会出现在输出表中。谢谢
靠左的简单df1.df2加入对我不起作用。
df1:
name product
Gopu biscuit
Gopu bun
Gopu ink
Aish ball
Aish doll
Aish bun
Aish ink
Colin bun
Colin handsanitize
Colin paper
df2:
product added-product
bun butter
bun jam
ink cloth
ink bib
paper pen
doll barbie
预期产量:
Name added-product
Gopu butter
Gopu jam
Gopu cloth
Gopu bib
Aish barbie
Aish butter
Aish jam
Aish cloth
Aish bib
Colin butter
Colin jam
Colin pen
谢谢。
问题来源:stackoverflow
dfnew=df1.join(df2,(df1.product==df2.product),"cross").select('name','added-product').orderBy('name')
dfnew.show()
+-----+-------------+
| name|added-product|
+-----+-------------+
| Aish| butter|
| Aish| jam|
| Aish| cloth|
| Aish| bib|
| Aish| barbie|
|Colin| jam|
|Colin| pen|
|Colin| butter|
| Gopu| butter|
| Gopu| cloth|
| Gopu| jam|
| Gopu| bib|
+-----+-------------+
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。