Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 指定将数据帧上载到S3时要使用的AWS配置文件名称_Python 3.x_Amazon S3_Boto3 - Fatal编程技术网

Python 3.x 指定将数据帧上载到S3时要使用的AWS配置文件名称

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

我想通过指定S3URL将Panda的数据帧直接上传到S3。我有一个,我想指定用于此上载的配置文件的名称

因为,我想知道是否有其他方法可以在代码中指定(非默认)区域

我无法在库中提交任何这样的选项,
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)