简体   繁体   English

尝试直接在 S3 中创建 CSV 文件并在 CSV 中写入数据

[英]Trying to create CSV file directly in S3 and write data in CSV

Hi all i am trying to create csv in S3 and feed data in the csv but an not able to archive it.大家好,我正在尝试在 S3 中创建 csv 并在 csv 中提供数据,但无法存档。

Below is the code下面是代码

import boto3
import csv
import time

date=time.strftime("%d-%m-%Y")

BUCKET_NAME = 'bucketname'
PREFIX = '/'
filename = f'result{date}.csv'

sts_s3 = boto3.resource('s3', region_name='us-west-2', endpoint_url='https://sts.us-west-2.amazonaws.com')
obj = sts_s3.Object(BUCKET_NAME, filename)


with open(f"s3://{BUCKET_NAME}{PREFIX}{filename}", 'w', newline='') as f:
    column = ['1111','2222', '3333']
    thewriter = csv.DictWriter(f, fieldnames=column)
    writer = csv.writer(f)
    thewriter.writeheader()
    thewriter.writerow({'1111': 'aaa','2222':'bbb', '3333':'ccc'})

Here an example using s3fs and pandas.这是一个使用 s3fs 和 pandas 的示例。 With pandas I create,handle the data and with s3fs upload to s3.----> pip install pandas and pip install s3fs使用我创建的熊猫,处理数据并使用 s3fs 上传到 s3.----> pip install pandas 和 pip install s3fs

import s3fs
import pandas as pd

ACCESS_KEY='XXXXXXXXXXXXXXXXXXX'
SECRET_KEY='YYYYYYYYYYYYYYYYYYYYYY'

data = [['tom', 10], ['nick', 15], ['juli', 14]]
df = pd.DataFrame(data, columns = ['Name', 'Age'])

bytes_to_write = df.to_csv(None).encode()
fs = s3fs.S3FileSystem(key=ACCESS_KEY, secret=SECRET_KEY)
with fs.open('s3://mybuckets//file.csv', 'wb') as f:
    f.write(bytes_to_write)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM