繁体   English   中英

使用dask在两个大熊猫数据框之间进行内部联接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM