我有一个DataFrame
df1
,其中有大约200万行。我已经基于名为ID
的键对其进行了重新分区,因为数据基于ID
-
df=df.repartition(num_of_partitions,'ID')
现在,我希望基于公共列df
,将此DataFrame
加入到相对较小的df2
hospital_code
中,但是我不想失去了基于ID
的基于df
的分区-
df.join(df1,'key','left')
我已经读到,如果一个DataFrame大于另一个DataFrame,那么最好使用如下所示的broadcast
联接,这将维护较大DataFrame df
的分区。但是,我不确定。
from pyspark.sql.functions import broadcast
df.join(broadcast(df1),'key','left')
任何人都可以建议解决此问题的有效方法是什么,以及如何在不对延迟和混洗相关问题等做出任何妥协的情况下维护较大的DataFrame
的分区程序?