我有两个数据框,如下所示。 如果有人买东西,我们也可以推荐类似的产品。
df1列出了每个人购买的物品。 df2推荐了附加产品。 例如,“ Gopu”购买面包,那么我必须推荐“黄油”和“果酱”
如果没有添加的产品项(来自df2),则它不需要出现在输出中。对于(例如)“ 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
谢谢。
答案 0 :(得分:1)
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|
+-----+-------------+