pyspark - 如何使用 pyspark 在连接条件中使用聚合函数
问题描述
我有两个数据框,我正在尝试在 id 和 date 列上加入这两个数据框。
加入条件是这样的:
df1.join(df2,
(df1.id == df2.id) &
F.when(df1.date < df2.agg(F.min(df2.start_date)),True)
.when(df1.date.between(df2.start_date, edf2.end_date), True)
.otherwise(None)
how='left'
)
当我试图这样做时,它会抛出一个属性错误:'DataFrame' 对象没有属性'_get_object_id'
我想要的是?
样本数据: df1: id 日期名称 1 20190821 内 1 20190828 罗恩 1 20190823 梅斯 1 20190819 杆 1 20190701 孙 df2(查找): id start_date end_date group_id 1 20190827 20301212 C 1 20190823 20190826 C 1 20190821 20190822 B 预期输出: id 日期名称 group_id 1 20190821 内 B 1 20190828 罗恩 C 1 20190823 梅斯 C 1 20190819 杆 B 1 20190701 孙乙
如果 df1.date 小于 min df2.start_date 那么它应该选择 min df2.star_date 的 group_id 即 B
有没有有效的方法来做到这一点(数据量很大)?
解决方案
推荐阅读
- c# - Unity - 在游戏中添加背景音乐
- swift - 字段子集上的 CollectionDifference
- perl - Installing AI::MXNet on Perl 5.24
- python - 如何使用数据框在烛台图上绘制交易量
- javascript - 如何使用图表 js 在图表中显示我的数据
- audio - 录音和采样过程
- python - Django url arg 不能包含 NUL (0x00) 字符
- symfony - Symfony 验证时间类型
- asp-classic - 从 Request.ServerVariables("HTTP_X_ORIGINAL_URL") 中删除正斜杠
- javascript - 当页面由 WampServer 提供时,navigator.mediaDevices 未定义