Pyspark 用高低不平的柱子连接
我有两个数据帧,其结构如下: |来源|#用户|#点击|小时|类型 及 类型|总#用户|小时 我想根据小时加入这些列,但是第一个数据帧在第二个数据帧中的粒度更深,因此有更多的行。基本上我想要一个数据帧,我有 |来源|#用户|#点击|小时|类型|总#用户 其中,总用户数来自第二个数据帧。有什么建议吗?我想我可能想用地图 编辑: 这里有一个例子 DF1 DF2 结果Pyspark 用高低不平的柱子连接,pyspark,Pyspark,我有两个数据帧,其结构如下: |来源|#用户|#点击|小时|类型 及 类型|总#用户|小时 我想根据小时加入这些列,但是第一个数据帧在第二个数据帧中的粒度更深,因此有更多的行。基本上我想要一个数据帧,我有 |来源|#用户|#点击|小时|类型|总#用户 其中,总用户数来自第二个数据帧。有什么建议吗?我想我可能想用地图 编辑: 这里有一个例子 DF1 DF2 结果 |Source|#Users|#Clicks|Hour|Type |Total #Users |Prod1 |50 |3
|Source|#Users|#Clicks|Hour|Type |Total #Users
|Prod1 |50 |3 |01 |Internet|100
|Prod2 |10 |2 |07 |iOS |20
|Prod3 |1 |50 |07 |Internet|300
|Prod2 |3 |2 |07 |Internet|300
|Prod3 |8 |2 |05 |Internet|15
这是您正在尝试的左连接:
df1.join(df2,(df1.Hour==df2.Hour)和(df1.Type==df2.Type),“左外”)
短版本:左连接保留df1
中的所有行,如果存在匹配项,则在条件下连接df2
中的匹配行(如果不匹配,则为null,如果多个匹配项,则重复)
我看不出任何问题。您可以加入不同大小的数据帧。你能说得更清楚些吗,你们目前拥有的东西以及你们想得到的结果是什么?你们目前拥有的东西以及你们目前拥有的东西以及你们目前拥有的东西以及你们想得到的结果是什么?你们目前拥有的东西以及你们目前拥有的东西以及你们目前拥有的东西以及你们想得到的结果?DF1?源?源?源?用户?用户?Ӟ|||||||||||用户?点击点击|点击点击数数数||点击|小时|小时||小时|||||小时|类型||||小时|类型|; 124; 124; 124;|小时