我有一个具有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数据框?
答案 0 :(得分:1)
快点的目的是能够处理内存中不适合的数据。在这种情况下,您需要先将数据集加载到内存中,然后再将其传递给dask。相反,您应该直接使用dask加载数据。例如,如果您使用pandas.read_csv
,则应将其切换为dask.dataframe.read_csv
。