7

read_parquet我正在尝试使用 Pandas函数将一个相当大的 Parquet 文件(约 2 GB,约 3000 万行)读入我的 Jupyter Notebook(在 Python 3 中) 。我还安装了函数用作 parquet 文件引擎的pyarrowfastparquet库。read_parquet不幸的是,似乎在阅读时,我的计算机死机了,最终我收到一条错误消息,说它内存不足(我不想重复运行代码,因为这会导致另一个冻结 - 我不知道逐字错误消息)。

有没有一种好方法可以以某种方式将镶木地板文件的某些部分写入内存而不会发生这种情况?我知道镶木地板文件是柱状的,可能无法仅将部分记录存储到内存中,但如果有解决方法,或者看看我在尝试时是否做错任何事情,我可能会将其拆分读这个。

就规格而言,我确实有一台相对较弱的计算机,只有 6 GB 内存和 i3。CPU 为 2.2 GHz,可使用 Turbo Boost。

4

2 回答 2

2

你需要所有的列吗?您可以通过加载您实际使用的内存来节省内存。

第二种可能性是使用在线机器(如google colab)加载 parquet 文件,然后将其另存为hdf. 拥有它后,您可以分块使用它。

于 2020-02-11T08:51:34.050 回答
1

您可以使用 Dask 代替 pandas。它是基于 pandas 构建的,因此具有您可能熟悉的类似 API,并且适用于更大的数据。

https://examples.dask.org/dataframes/01-data-access.html

于 2020-03-07T04:38:10.713 回答