我有一個包含大約 10 億行和大約 15 列的大型 DataFrame。| country| city | date | ...|+--------+-------+-----------+----+| France| Paris| 2018-07-01| ...|| Spain| Madrid| 2017-06-01| ...|我有一個較小的 DataFrame,其中包含要根據組合(國家、城市)過濾的日期 - 大約 50 行。| country| city | filter_date |+--------+-------+-------------+| France| Paris| 2018-07-01 || Spain| Madrid| 2017-06-01 |我想使用存儲在小 DataFrame 中的 filter_date 按日期過濾大 DataFrame 對于給定組合 - 例如刪除包含(法國,巴黎)并且在 2018-07-01 之前的任何行,等等......我最初想到的解決方案只是進行左連接,然后進行過濾,例如:df = df_large.join(df_small, on=['country', 'city'], how='left').filter(f.col('date') >= c.col('filter_date'))但是,如果非常昂貴并且我的 DataFrame 太大,則此解決方案并不理想,因為左連接。在此操作后執行操作時,代碼需要很長時間才能運行。
根據來自小型 DataFrame 的信息過濾大型 DataFrame
慕碼人8056858
2023-03-01 15:23:15