当前位置:   article > 正文

pandas.read_parquet()读取2G的parquet文件报错:pyarrow.lib.ArrowMemoryError: malloc of size 5371271360 failed

read_parquet

解决方式:

1:使用 PyArrow 底层接口:
PyArrow 是 Pandas 在背后使用的库来处理 Parquet 文件。你可以直接使用 PyArrow 来逐块读取数据:

import pyarrow.parquet as pq

parquet_file = pq.ParquetFile('big_file.parquet')

for i in range(parquet_file.num_row_groups):
    row_group = parquet_file.read_row_group(i)
    # 处理这个 row group 的数据,例如转换成 Pandas DataFrame
    df = row_group.to_pandas()
    # 现在你可以对 df 进行处理
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2:使用 Dask:
Dask 是一个并行计算库,它有自己的 read_parquet 函数,它支持分块处理和懒加载,这意味着数据只有在需要计算时才会被加载到内存中:

import dask.dataframe as dd

ddf = dd.read_parquet('your_file.parquet', chunksize='100MB')
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/515979
推荐阅读
相关标签
  

闽ICP备14008679号