Pandas 将大型数据集与dask合并

Pandas 将大型数据集与dask合并,pandas,dask,large-data,Pandas,Dask,Large Data,我有两个数据集,一个大约45GB,它包含1年内的每日事务,另一个是3.6GB,包含客户ID和详细信息。我想将这两个数据合并到一个公共列中,以创建一个数据集,该数据集超出了服务器的内存,因为每个客户可以有多个事务。我正在使用16核和64GB RAM的windows服务器,据我所知,这类工作的规格非常有限 方法学 将大数据集读取到dask数据帧中,并将索引设置为客户ID。在pandas中读取3.6GB数据集,并将索引设置为客户ID。启动本地群集,参数memory_limit='50GB',proce

我有两个数据集,一个大约45GB,它包含1年内的每日事务,另一个是3.6GB,包含客户ID和详细信息。我想将这两个数据合并到一个公共列中,以创建一个数据集,该数据集超出了服务器的内存,因为每个客户可以有多个事务。我正在使用16核和64GB RAM的windows服务器,据我所知,这类工作的规格非常有限

方法学

将大数据集读取到dask数据帧中,并将索引设置为客户ID。在pandas中读取3.6GB数据集,并将索引设置为客户ID。启动本地群集,参数memory_limit='50GB',processs=False。 将dask数据帧与索引上的熊猫数据帧合并(left_index=True,right_index=True)

此方法创建75000个任务,最终会耗尽内存


我想实现的目标可能吗?我选错工具了吗?我的想法快用完了,我迫切需要一些帮助

是的,您想要做的是可能的,但是您可能需要稍微调整一下分区大小。如果数据中存在大量重复,那么熊猫可能会突然产生非常大的值。你可以通过……来解决这个问题

  • 使用更小的分区(可能)
  • 减少并行量(可能尝试
    dask.config.set(scheduler=“single-threaded”)
    ,看看这是否有帮助

  • 是的,您想做的是可能的,但是您可能需要稍微调整分区大小。如果数据中存在大量重复,那么熊猫可能会突然产生非常大的值。您可以通过以下方式解决此问题

  • 使用更小的分区(可能)
  • 减少并行量(可能尝试
    dask.config.set(scheduler=“single-threaded”)
    ,看看这是否有帮助