【问题标题】:Memory efficient data loading with Dask使用 Dask 进行内存高效数据加载
【发布时间】:2021-09-22 15:18:12
【问题描述】:

嗯,我有一个包含数据的大 CSV 文件和服务器 RAM 的瓶颈。除此之外,还有一个 dask-distributed 集群,看起来像是这种情况的解决方案,dask-scheduler 正在服务器上运行。这是我尝试过的:

import dask.dataframe as dd
import pandas as pd
from dask.bag import from_sequence

cheques = dd.read_csv('cheque_data.csv') # not working because of distributed workers can't access file directly
cheques = from_sequence(pd.read_csv('cheque_data.csv',chunksize=10**4)).to_dataframe() # dask Bag from_sequence constructs from tuples or dict

所以我一直停留在这里,任何想法和线索都会很棒

【问题讨论】:

  • 另一个选项可能是vaexvaex.io
  • 为什么不在数据文件所在的同一台机器上运行本地集群呢?还是根本不使用分布式?
  • @mdurant,主 RAM 和计算资源是远程运行的 dask-worker
  • 如果您的工作人员无法直接访问文件,您需要自己想办法——共享磁盘、云存储...

标签: python dask dask-distributed


【解决方案1】:

您的代码 sn-p 说 dd.read_csv('cheque_data.csv') 是“无法工作,因为分布式工作人员无法直接访问文件”。

我认为您需要让您的员工访问该文件。

我更喜欢在 Dask 读取大文件之前拆分它们。这使 Dask 更容易并行读取文件。

这取决于cheque_data.csv 的大小。 2GB 比 30GB 更容易管理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-26
    • 2015-12-27
    • 2018-11-20
    • 2016-06-07
    • 2021-01-12
    • 2022-08-13
    • 1970-01-01
    相关资源
    最近更新 更多