我正在尝试在 cPanel 终端中运行 python 脚本。当脚本尝试打开 46.65 MB 大小的镶木地板文件时,我收到错误。这在我的家用电脑上有效。
df = pd.read_parquet(file_path + 'CA_s.parquet')
错误信息
Traceback (most recent call last):
File "/home/.../my_script.py", line 60, in <module>
df = pd.read_parquet(file_path + 'CA_s.parquet')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/.../virtualenv/.../python3.11/.../pandas/io/parquet.py", line 667, in read_parquet
return impl.read(
^^^^^^^^^^
File "/home/.../virtualenv/.../python3.11/.../pandas/io/parquet.py", line 281, in read
result = pa_table.to_pandas(**to_pandas_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "pyarrow/array.pxi", line 885, in pyarrow.lib._PandasConvertible.to_pandas
File "pyarrow/table.pxi", line 5002, in pyarrow.lib.Table._to_pandas
File "/home/.../virtualenv/.../python3.11/.../pyarrow/pandas_compat.py", line 784, in table_to_dataframe
result = pa.lib.table_to_blocks(options, table, categories,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "pyarrow/table.pxi", line 3941, in pyarrow.lib.table_to_blocks
File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
pyarrow.lib.ArrowMemoryError: malloc of size 106255424 failed
我在终端中输入
free -m
来获取内存数据:
总计 | 二手 | 免费 | 共享 | buff/缓存 | 可用 | |
---|---|---|---|---|---|---|
记忆: | 15507 | 5497 | 2561 | 1209 | 7447 | 7588 |
交换: | 1023 | 811 | 212 |
请分享任何想法或答案,谢谢。
我认为这个错误表明内存分配问题,可能是由于执行时可用内存不足造成的。 在这种情况下,试试这个。
如果不需要一次性加载DataFrame,请考虑分块读取Parquet文件。 或者您只需要 DataFrame 中的某些列,使用
columns
中的 read_parquet
参数指定这些列。
这可以显着减少内存使用量。 希望我的回答对你有帮助。