我有两个dask数据帧,它们首先在pandas中读取,在各自的“zo_id”列上建立索引,然后转换为具有4个分区的dask数据帧:
drivetimes = pd.read_sql('QUERY1',engine)
drivetimes.set_index('zo_id', inplace=True)
drivetimes = dd.from_pandas(drivetimes, npartitions=4)
drivetimes.npartitions
drivetimes.divisions
(623725627468631429636360645492)
calc_zones = pd.read_sql('QUERY2',engine)
calc_zones.rename(columns={"re_id": "z_re_id"}, inplace=True)
calc_zones.set_index('zo_id', inplace=True)
calc_zones = dd.from_pandas(calc_zones, npartitions=4)
calc_zones.npartitions
calc_zones.divisions
(623725629167634609640051645492)
如您所见,这些分区没有对齐,当我使用各自的索引合并两个数据帧时:
j1 = dd.merge(drivetimes, calc_zones, on='zo_id', left_index = True, right_index = True, how='inner')
j1.shape[0].compute()
我可以在仪表板中看到,图表从重新划分任务开始。如何“预对齐”这两个数据帧的分区,以避免每次计算时重复重新洗牌数据
dd.from_pandas
函数接受divisions=
关键字相关问题 更多 >
编程相关推荐