Spark S3 Write-写入存储桶时出现访问被拒绝错误

时间:2019-10-28 05:07:02

标签: apache-spark amazon-s3

我正在尝试从S3存储桶读取和写入文件。我在AWS门户中创建了一个IAM用户。我已经使用相同的密钥在EMR实例中配置了aws cli,并且可以从cli中将文件读写到特定的S3存储桶中。

但是当我从Spark Shell内尝试相同操作时,便能够从存储桶中读取文件,但是当我尝试将同一文件写入同一存储桶中的不同路径时,我得到{{1} }错误。这是我执行的命令集:

AccessDenied

这是错误消息

sc.hadoopConfiguration.set("fs.s3.awsAccessKeyId", "awsAccessKeyId")
sc.hadoopConfiguration.set("fs.s3.awsSecretAccessKey", "awsSecretAccessKey")
val a = spark.read.parquet("s3://path.parquet")
a.write.parquet("s3://path.parquet")

谢谢。

1 个答案:

答案 0 :(得分:2)

检查您的IAM权限。 如果您具有自定义名称的IAM角色,请确保它使用iam:PassRole并检查“角色”名称中的拼写错误。 arn:aws:iam::123456789012:role/YourName

请参阅:AWS Docs