Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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
无法将大型csv文件从s3 bucket读取到python_Python_Amazon Web Services_Csv_Amazon S3 - Fatal编程技术网

无法将大型csv文件从s3 bucket读取到python

无法将大型csv文件从s3 bucket读取到python,python,amazon-web-services,csv,amazon-s3,Python,Amazon Web Services,Csv,Amazon S3,所以我尝试从s3 bucket加载一个csv文件。下面是代码 将熊猫作为pd导入 进口boto3 输入io s3_文件_键='iris.csv' bucket='数据' s3=boto3.client('s3') obj=s3.get\u对象(Bucket=Bucket,Key=s3\u文件\u Key) initial_df=pd.read_csv(io.BytesIO(obj['Body'].read()) 它很好用。iris.csv的大小只有3kb。 现在,我尝试读取6gb大小的“myd

所以我尝试从s3 bucket加载一个csv文件。下面是代码

将熊猫作为pd导入
进口boto3
输入io
s3_文件_键='iris.csv'
bucket='数据'
s3=boto3.client('s3')
obj=s3.get\u对象(Bucket=Bucket,Key=s3\u文件\u Key)
initial_df=pd.read_csv(io.BytesIO(obj['Body'].read())
它很好用。iris.csv的大小只有3kb。
现在,我尝试读取6gb大小的“mydata.csv”,而不是iris.csv

我得到以下错误:

ClientError:调用GetObject操作时发生错误(AccessDenied):拒绝访问


我无法理解访问如何成为一个问题,因为我首先将数据放在了那里。此外,我还能从同一位置读取“iris.csv”。有什么想法吗

以下是您可以做的几件事:

  • 确保S3存储桶的区域与AWS配置的区域相同。否则,它将不起作用。S3服务是全局的,但每个bucket都是在特定的区域中创建的。AWS客户端应使用相同的区域
  • 确保资源的访问密钥具有正确的权限集
  • 确保文件已实际上载
  • 确保没有应用撤销访问的bucket策略
  • 您可以在S3存储桶上启用日志记录以查看错误
  • 确保该存储桶未进行版本控制。如果已版本化,请指定对象版本
  • 确保对象定义了正确的ACL集
  • 如果对象已加密,请确保您有权使用该KMS密钥解密该对象

  • 检查权限以及
    mydata.csv
    是否可能是带有KMS密钥或类似密钥的加密机。您首先上载了该文件,并且可以读取另一个文件,这一事实与此无关。@idpd15,如果您喜欢这个答案并且它对您有用,请批准它,并按照Stack Overflow的建议对其进行投票。谢谢