J'ai une base de données de pandas. Je veux écrire ce dataframe dans un fichier de parquet dans S3 . J'ai besoin d'un exemple de code pour le même. mais je ne pouvais pas obtenir un exemple de code de travail.
nous pouvons combiner pyarrow et boto3 .
exemple de code rapide:
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)
Pour votre référence, j'ai les travaux de code suivants.
s3_url = 's3://bucket/folder/bucket.parquet.gzip'
df.to_parquet(s3_url, compression='gzip')
Pour utiliser to_parquet
, vous devez installer pyarrow
ou fastparquet
. Assurez-vous également que vos informations config
et credentials
, situées dans le dossier .aws
, sont correctes.