我有这个脚本,我想使它更快,如果可能的话。读取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:实际上,您可以尝试已经提供的作为这个问题答案的许多方法之一