python - 无法从 pandas 转到 dask 数据帧,内存错误

标签 python pandas dask dask-distributed

我有一个包含 700 万条记录的 pandas 数据框,我正在尝试创建一个 dask 数据框,但我一直遇到内存问题。

使用的代码:

dd_test = dd.from_pandas(df_lookup_table, npartitions=3)

错误消息:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Users\user\venv\lib\site-packages\dask\dataframe\io\io.py", line 181, in from_pandas
    name = name or ('from_pandas-' + tokenize(data, chunksize))
  File "C:\Users\user\venv\lib\site-packages\dask\base.py", line 600, in tokenize
    return md5(str(tuple(map(normalize_token, args))).encode()).hexdigest()
  File "C:\Users\user\venv\lib\site-packages\dask\utils.py", line 413, in __call__
    return meth(arg, *args, **kwargs)
  File "C:\Users\user\venv\lib\site-packages\dask\base.py", line 710, in normalize_dataframe
    return list(map(normalize_token, data))
  File "C:\Users\user\venv\lib\site-packages\dask\utils.py", line 413, in __call__
    return meth(arg, *args, **kwargs)
  File "C:\Users\user\venv\lib\site-packages\dask\base.py", line 734, in normalize_array
    x.flat]))
MemoryError

我能够使用较小的数据帧创建一个 dask 数据帧。如何从这个 pandas 数据帧创建 dask 数据帧?

最佳答案

dask 的目的是能够处理无法放入内存的数据。在这种情况下,您首先将数据集加载到内存中,然后再将其传递给 dask。相反,您应该直接使用 dask 加载数据。例如,如果您使用 pandas.read_csv,则应将其切换为 dask.dataframe.read_csv

关于python - 无法从 pandas 转到 dask 数据帧,内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54409235/

相关文章:

javascript - Django Python - Javascript 动态表对行进行排序

python - 在Python中从不同长度的行创建列表

python - pandas 对列值应用 lambda 并选择那些设置大小大于 1 的值

python-2.7 - 如何可视化 dask 图?

python - dask 将数据帧导出到远程存储(S3)

python - python Sort() 是否查看第一个参数并忽略其余参数?

python - AWS Glue python 安装 - 找不到版本

python - Python 质心中的 KMeans 位置不正确,我该如何将它们设为 "unscale"?

python - 如何在Python数据框中按多索引(包括初始数字索引和其他列)进行分组?

pandas - Dask:将 dask.DataFrame 转换为 xarray.Dataset