首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将所有csv文件从s3转换为parquet

将所有csv文件从s3转换为parquet
EN

Stack Overflow用户
提问于 2019-07-25 13:15:52
回答 1查看 555关注 0票数 0

我要做的是将所有文件从S3(亚马逊网络服务存储)转换为parquet格式,并将它们重新保存到s3中。

我不能从s3转换所有的文件。请帮帮我!!

代码语言:javascript
复制
import boto3
import pandas as pd
import pyarrow as pa
from s3fs import S3FileSystem
import pyarrow.parquet as pq

s3 = boto3.client('s3',region_name='us-east-2')

obj = s3.get_object(Bucket='dstest-s3', Key='dstest/movies.csv')
df = pd.read_csv(obj['Body'])

table = pa.Table.from_pandas(df)

output_file = "s3://dstest-s3/dstest/parquetconversion1.parquet"
s3 = S3FileSystem()

pq.write_to_dataset(table=table, root_path=output_file, filesystem=s3)

print("File converted from CSV to parquet completed")
EN

回答 1

Stack Overflow用户

发布于 2019-07-25 14:53:40

基本上,您需要使用list_objects_v2从存储桶中获取所有密钥,并迭代这些密钥,然后下载、转换和上传。

代码语言:javascript
复制
s3 = bt3.get_client('s3')
response = s3.list_objects_v2(
        Bucket='dstest-s3',
        Prefix='dstest/'
)

for s3_obj in response['Contents']:
    obj = s3.get_object(Bucket='dstest-s3', Key=s3_obj['Key'])
    # Do your converting, and uploading here
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57194759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档