Amazon s3 日志拼花地板文件名由S3上的pyarrow创建

Amazon s3 日志拼花地板文件名由S3上的pyarrow创建,amazon-s3,parquet,pyarrow,apache-arrow,python-s3fs,Amazon S3,Parquet,Pyarrow,Apache Arrow,Python S3fs,我们使用pyarrow将数据附加到存储在S3(已分区)中的现有拼花地板数据集。这在AWS lambda上每小时运行几次。一个最简单的例子是: 将pyarrow导入为pa 导入pyarrow.parquet作为pq 导入S3F df=…#现有熊猫df table=pa.table.from_熊猫(df) pq.write_至_数据集( 桌子 filesystem=s3, 根路径=f“s3://s3路径/”, 分区_cols=[‘年’,‘月”] ) 因此,根据内部数据值,许多拼花地板文件将写入S3

我们使用pyarrow将数据附加到存储在S3(已分区)中的现有拼花地板数据集。这在AWS lambda上每小时运行几次。一个最简单的例子是:

将pyarrow导入为pa
导入pyarrow.parquet作为pq
导入S3F
df=…#现有熊猫df
table=pa.table.from_熊猫(df)
pq.write_至_数据集(
桌子
filesystem=s3,
根路径=f“s3://s3路径/”,
分区_cols=[‘年’,‘月”]
)
因此,根据内部数据值,许多拼花地板文件将写入S3。我们的目标是通过输出文件名(S3键),跟踪哪些文件已写入文件系统

是否有任何方法可以捕获由
pyarrow
s3fs
编写的实际文件名?拼花地板文件名是根据计算出的哈希名称任意命名的,我看不到上述两个包的任何日志记录功能。

开始编写之前,您可以为您的文件提供名称为
partition\u filename\u cb

pyarrow.parquet.write_to_dataset(table, root_path, partition_cols=None, partition_filename_cb=None, filesystem=None, **kwargs)

如果您还可以使用:


您使用的是什么pyarrow版本?从0.15.0开始,您可以在写入之前为文件提供名称。非常感谢。工作起来很有魅力,却错过了那项新功能。如果你想添加评论作为答案,我会将其标记为选中,否则我可以自己回答。我会在某个时候发布答案。谢谢你的确认。
import awswrangler as wr

paths = wr.pandas.to_parquet(
    dataframe=df,
    path="s3://...",
    dataset=True,
    database="my_database",  # Optional, only with you want it available on Athena/Glue Catalog
    table="my_table",
    partition_cols=["PARTITION_COL_NAME"])["paths"]

print(paths)