ArrowInvalid:GetFileInfo() 生成的路径位于基本目录镶木地板之外

Was*_*amo 8 python pandas parquet pyarrow

我的 S3 存储桶中存储了一个镶木地板数据集,其中包含多个分区文件。我想将其读入我的 pandas 数据帧,但是当我以前没有这样做时,我收到了这个 ArrowInvalid 错误。

有时,这些数据会被之前的 pandas 数据快照覆盖,如下所示:

import pandas as pd  # version 1.3.4
# pyarrow version 5.0

df.to_parquet(
    f's3a://{bucket_and_prefix}',
    storage_options={
        "key"          : os.getenv("AWS_ACCESS_KEY_ID"),
        "secret"       : os.getenv("AWS_SECRET_ACCESS_KEY"),
        "client_kwargs": {
            'verify'      : os.getenv('AWS_CA_BUNDLE'),
            'endpoint_url': 'https://prd-data.company.com/'
        }
    },
    index=False
)
Run Code Online (Sandbox Code Playgroud)

但是当阅读它时:

df = pd.read_parquet(
    f"s3a://{bucket_and_prefix}",
    storage_options={
        "key"          : os.getenv("AWS_ACCESS_KEY_ID"),
        "secret"       : os.getenv("AWS_SECRET_ACCESS_KEY"),
        "client_kwargs": {
            'verify'      : os.getenv('AWS_CA_BUNDLE'),
            'endpoint_url': 'https://prd-data.company.com/'
        }
    }
)
Run Code Online (Sandbox Code Playgroud)

它失败并出现错误:

ArrowInvalid:GetFileInfo() 产生路径“bucket/folder/data.parquet/year=2021/month=2/abcde.parquet”,位于基本目录“s3://bucket/folder/data.parquet”之外

知道为什么会发生这个 ArrowInvalid 错误以及如何将镶木地板数据读入 pandas 吗?