Pandas 使用pyarrow读取aws s3中的分区数据集不会';不添加分区列
我正在尝试读取aws s3中的分区数据集,它看起来像:Pandas 使用pyarrow读取aws s3中的分区数据集不会';不添加分区列,pandas,amazon-s3,parquet,pyarrow,Pandas,Amazon S3,Parquet,Pyarrow,我正在尝试读取aws s3中的分区数据集,它看起来像: MyDirectory--code=1--file.parquet --code=2--another.parquet --code=3--another.parquet 我创建了一个文件列表,其中包含目录中所有文件的路径,然后执行 df = pq.ParquetDataset(file_list, filesystem=fs).read().to_pandas() 除了数据帧df中不存在分区
MyDirectory--code=1--file.parquet
--code=2--another.parquet
--code=3--another.parquet
我创建了一个文件列表,其中包含目录中所有文件的路径,然后执行
df = pq.ParquetDataset(file_list, filesystem=fs).read().to_pandas()
除了数据帧df中不存在分区列代码外,其他一切都正常工作。
我还尝试使用一个指向MyDirectory的路径而不是文件列表,但发现了一个错误
“在中间目录中找到文件:s3://bucket/Mydirectoty”,我在网上找不到任何答案
谢谢大家! AWS有一个项目()帮助Pandas/PyArrow及其服务之间的集成
此代码段应该可以工作:
import awswrangler as wr
# Write
wr.s3.to_parquet(
df=df,
path="s3://...",
mode="overwrite",
dataset=True,
database="my_databse", # Optional, only if you want it available on Athena/Glue Catalog
table="my_table",
partition_cols=["PARTITION_COL_NAME"])
# READ
df = wr.s3.read_parquet(path="s3://...", dataset=True)
如果您对其他工具满意,可以尝试一下
dask
。假设您要读取的所有数据都在s3://文件夹中
,您可以直接使用
导入dask.dataframe作为dd
存储单元选项={
“键”:您的_键,
“秘密”:你的秘密}
df=dd.read_拼花地板(“s3://文件夹”,
存储选项=存储选项)
我测试了byt dd.read\u parquet读取单个拼花文件,无法读取分区数据集,