[英]Merge a large Dask dataframe with a small Pandas dataframe
[英]innerjoin between two large pandas dataframe using dask
我有两个大表,其中一个是相对较小的〜800万行和一列。 其他是1.73亿行和一列。 第一个数据帧的索引是IntervalIndex(例如(0,13],(13、20],(20、23],...),第二个是有序数(1,2,3,... )。两个DataFrame都进行了排序
DF1类别
(0,13] 1
(13 20] 2
.... Df2值
1 5.2
2 3.4
3 7.8
期望
DF3
指标值类别
1 5.2 1
2 3.4 1
3 7.8 1
我想要两个获取内部联接(更快的算法),该内部联接返回类似于data_frame2.index上的MySQL的内部联接
我希望能够在集群中以复杂的方式执行它,因为当我使用较小的第二个数据集生成INNERJOIN时,结果是如此,使用map_partitions消耗了10行IMAGINE 105MEGABYTE的内存。 另一个问题是,如果首先使用DaskDF = client.scatter(dataframe2),然后再使用DaskDF = client.submit(fun1,DaskDF),则我将无法使用两次,我无法像client.submit(fun2,DaskDF)那样做。
您可以尝试使用较小的分区。 回想一下,联接对内存的使用取决于共有多少个共享行。 根据您的数据,输出分区的内存使用量可能比输入分区的内存使用量大得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.