Python 3.x 指定将数据帧上载到S3时要使用的AWS配置文件名称
我想通过指定S3URL将Panda的数据帧直接上传到S3。我有一个,我想指定用于此上载的配置文件的名称 因为,我想知道是否有其他方法可以在代码中指定(非默认)区域 我无法在库中提交任何这样的选项,Python 3.x 指定将数据帧上载到S3时要使用的AWS配置文件名称,python-3.x,amazon-s3,boto3,Python 3.x,Amazon S3,Boto3,我想通过指定S3URL将Panda的数据帧直接上传到S3。我有一个,我想指定用于此上载的配置文件的名称 因为,我想知道是否有其他方法可以在代码中指定(非默认)区域 我无法在库中提交任何这样的选项,boto3在内部使用该选项上传到s3 请注意,我不想使用环境变量,也不想修改AWS凭据文件中的默认配置 将熊猫作为pd导入 数据=[1,2,3] df=pd.DataFrame() #我想在这里指定要使用的非默认配置文件 s3_url='s3://my_bucket/path/to/file.parqu
boto3
在内部使用该选项上传到s3
请注意,我不想使用环境变量,也不想修改AWS凭据文件中的默认配置
将熊猫作为pd导入
数据=[1,2,3]
df=pd.DataFrame()
#我想在这里指定要使用的非默认配置文件
s3_url='s3://my_bucket/path/to/file.parquet'
df.to_拼花地板(s3_url)
使用
将数据帧添加到拼花地板文件
df.to_parquet( parquet_pandas_file )
将文件保存到S3
with open( parquet_pandas_file, 'rb' ) as s3_source_data:
s3.upload_fileobj(s3_source_data, 'bucket_name', 'bucket_key_name' )
使用s3fs命令时,请使用以下代码设置配置文件名称
fs = s3fs.S3FileSystem(profile_name='<profile name>')
with fs.open('s3://bucketname/root1/file.csv', 'w') as f:
df.to_csv(f)
fs=s3fs.S3FileSystem(profile_name='')
使用fs.open('s3://bucketname/root1/file.csv','w')作为f:
df.至_csv(f)
我不确定我是否理解这个问题,为什么不使用Boto3的S3资源/客户端将文件按名称上传到bucket中?S3是一项全球服务,没有基于区域的分离,这意味着如果您列出_bucket()
在所有区域都有bucket,那么您的密钥/配置文件应该属于正确的帐户,并且可以访问bucket。换句话说,bucket url是由boto3抽象的。您的代码中有一个错误。上传的第二行应该是s3.Upload\u fileobj(s3\u源数据,'bucket\u name','bucket\u key\u name')
fs = s3fs.S3FileSystem(profile_name='<profile name>')
with fs.open('s3://bucketname/root1/file.csv', 'w') as f:
df.to_csv(f)