首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Spark访问s3a时出错

使用Spark访问s3a时出错
EN

Stack Overflow用户
提问于 2020-03-02 13:32:30
回答 1查看 3.4K关注 0票数 8

发行:

可以使用AWS和boto 3成功下载该文件。但是,在使用Hadoop/Spark的S3A连接器时,接收到以下错误:

代码语言:javascript
复制
py4j.protocol.Py4JJavaError: An error occurred while calling o24.parquet.
: com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 403, AWS Service: Amazon S3, AWS Request ID: BCFFD14CB2939D68, AWS Error Code: null, AWS Error Message: Forbidden, S3 Extended Request ID: MfT8J6ZPlJccgHBXX+tX1fpX47V7dWCP3Dq+W9+IBUfUhsD4Nx+DcyqsbgbKsPn8NZzjc2U

Configuration:在我的本地机器上运行这个

  1. 火花版本2.4.4
  2. Hadoop版本2.7

罐子补充道:

  1. hadoop-aws-2.7.3.jar
  2. aws-java-sdk-1.7.4.jar

Hadoop Config:

代码语言:javascript
复制
hadoop_conf.set("fs.s3a.access.key", access_key)
hadoop_conf.set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
hadoop_conf.set("fs.s3a.secret.key", secret_key)
hadoop_conf.set("fs.s3a.aws.credentials.provider","org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider")
hadoop_conf.set("fs.s3a.session.token", session_key)
hadoop_conf.set("fs.s3a.endpoint", "s3-us-west-2.amazonaws.com") # yes, I am using central eu server.
hadoop_conf.set("com.amazonaws.services.s3.enableV4", "true")

读取文件的代码:

代码语言:javascript
复制
from pyspark import SparkConf, SparkContext, SQLContext
sc = SparkContext.getOrCreate()
hadoop_conf=sc._jsc.hadoopConfiguration()
sqlContext = SQLContext(sc)
df = sqlContext.read.parquet(path)
print(df.head())
EN

回答 1

Stack Overflow用户

发布于 2020-09-16 14:36:30

将AWS凭据提供程序设置为配置凭据:

代码语言:javascript
复制
hadoopConf.set("fs.s3a.aws.credentials.provider", "com.amazonaws.auth.profile.ProfileCredentialsProvider")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60489928

复制
相关文章

相似问题

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