【问题标题】:innerjoin between two large pandas dataframe using dask使用 dask 在两个大熊猫数据框之间进行内部连接
【发布时间】:2019-02-02 00:39:40
【问题描述】:

我有两张大表,其中一张相对较小,大约 800 万行和一列。其他是大的 1.73 亿行和一列。第一个数据帧的索引是 IntervalIndex (eg (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 的内连接(更快的算法)

我希望能够在集群中以精细的方式执行它,因为当我使用较小的第二个数据集生成内部连接时,结果是使用 map_partitions 为 10 行消耗 105MEGABYTE 的内存。 另一个问题是我不能使用 scatter 两次,如果第一个 DaskDF=client.scatter(dataframe2) 然后是 DaskDF=client.submit(fun1,DaskDF) 我无法像 client.submit(fun2,DaskDF) 那样做某事。

【问题讨论】:

    标签: python pandas distributed-computing dask


    【解决方案1】:

    您可以尝试使用较小的分区。回想一下,连接的内存使用取决于有多少共享行。根据您的数据,输出分区的内存使用量可能比输入分区的内存使用量大得多。

    【讨论】:

      猜你喜欢
      • 2021-05-11
      • 1970-01-01
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 2019-06-26
      相关资源
      最近更新 更多