如何快速阅读从拼花到熊猫?



我有这个脚本,我想使它更快,如果可能的话。读取Parquet数据集到pandas.

import pandas as pd
from pyarrow.parquet import ParquetDataset
import s3fs
import pyarrow.parquet as pq
s3 = s3fs.S3FileSystem()
s3_path = 's3:// ... '
paths = [path for path in s3.ls(s3_path) if path.endswith(".parquet")]
dataset = ParquetDataset(paths, filesystem=s3)

Until here非常快,效果很好

但是由于镶木地板的工作不是很灵活,我搜索了SO如何在熊猫中制作它,我发现了这个:

table = dataset.read()
df = table.to_pandas()

不幸的是,读取3gb的镶木地板需要几个小时。我想知道是否有什么技巧可以让它更快,你可以帮助我吗?

提前非常感谢!

您使用s3fs有什么原因吗?如果没有,您可以尝试跳过这个中间步骤,使用pandas.read_parquet()。您可以直接在s3://url上工作。
还有,你在哪里运行你的脚本?根据这种情况,您可以尝试在读取文件之前先下载文件或增加计算量。记忆。

/e:实际上,您可以尝试已经提供的作为这个问题答案的许多方法之一

最新更新