Python 将熊猫拼花地板分割成s3

Python 将熊猫拼花地板分割成s3,python,pandas,amazon-s3,airflow,Python,Pandas,Amazon S3,Airflow,如何将按列划分的拼花地板写入s3?我正在努力: def write_df_into_s3(df, bucket_name, filepath, format="parquet"): buffer = None hook = S3Hook() if format == "parquet": buffer = BytesIO() df.to_parquet(buffer, index=False, partition_cols=['date'

如何将按列划分的拼花地板写入s3?我正在努力:

def write_df_into_s3(df, bucket_name, filepath, format="parquet"):
    buffer = None
    hook = S3Hook()

    if format == "parquet":
        buffer = BytesIO()
        df.to_parquet(buffer, index=False, partition_cols=['date'])
    else:
        raise Exception("Format not implemented!")

    hook.load_bytes(buffer.getvalue(), filepath, bucket_name)

    return f"s3://{bucket_name}/{filepath}"

但是我得到了一个错误,
'NoneType'对象没有属性'\u isfilestore'

对于Python3.6+,AWS有一个名为AWS data wrangler的库,它有助于熊猫/S3/Parquet之间的集成

安装do

pip install awswrangler
如果您想将pandas数据帧作为分区拼花文件写入S3,请执行以下操作:

import awswrangler as wr
wr.s3.to_parquet(
    dataframe=df,
    path="s3://my-bucket/key/"
    dataset=True,
    partition_cols=["date"]
)

看起来像pyarrow中的一个bug检查此jira问题: