【发布时间】:2020-11-26 05:17:48
【问题描述】:
我有一台配备 8 GB RAM 和 5 个内核的 Windows 10 机器。
我创建了一个用 gzip 压缩的 parquet 文件。压缩后的文件大小为 137 MB。 当我尝试通过 Pandas、dask 和 vaex 读取 parquet 文件时,我遇到了内存问题:
熊猫:
df = pd.read_parquet("C:\\files\\test.parquet")
OSError: Out of memory: realloc of size 3915749376 failed
黎明:
import dask.dataframe as dd
df = dd.read_parquet("C:\\files\\test.parquet").compute()
OSError: Out of memory: realloc of size 3915749376 failed
Vaex:
df = vaex.open("C:\\files\\test.parquet")
OSError: Out of memory: realloc of size 3915749376 failed
由于 Pandas /Python 旨在提高效率,并且 137 mb 文件低于标准大小,有没有推荐的方法来创建高效的数据帧? Vaex、Dask 等库声称非常高效。
【问题讨论】:
-
最新版本的 vaex (v4) 有了很大改进,不再支持 parquet 文件。
pip install vaex==4.0.0或conda install -c conda-forge vaex==4。我认为这将解决您的许多问题。如果你这样做,请确保你暂时不要使用 python 3.9。
标签: pandas dataframe dask parquet vaex