Python 将熊猫拼花地板分割成s3
如何将按列划分的拼花地板写入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'
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问题: