pandas dataframeがあります。このデータフレームをS3の寄木細工のファイルに書き込みたいのですが、同じサンプルコードが必要です。グーグルしようとしましたが、動作するサンプルを取得できませんでしたコード。
pyarrow と boto を組み合わせることができます。
簡単なサンプルコード:
def main():
data = {0: {"data1": "value1"}}
df = pd.DataFrame.from_dict(data, orient='index')
write_pandas_parquet_to_s3(
df, "bucket", "folder/test/file.parquet", ".tmp/file.parquet")
def write_pandas_parquet_to_s3(df, bucketName, keyName, fileName):
# dummy dataframe
table = pa.Table.from_pandas(df)
pq.write_table(table, fileName)
# upload to s3
s3 = boto3.client("s3")
BucketName = bucketName
with open(fileName) as f:
object_data = f.read()
s3.put_object(Body=object_data, Bucket=BucketName, Key=keyName)
参考までに、次のコードが機能します。
s3_url = 's3://bucket/folder/bucket.parquet.gzip'
df.to_parquet(s3_url, compression='gzip')
to_parquet
を使用するには、pyarrow
またはfastparquet
をインストールする必要があります。また、.aws
フォルダーにあるconfig
およびcredentials
ファイルに正しい情報があることを確認してください。