首页 > 解决方案 > PySpark 中的 Hello World 程序 - EMR

问题描述

我是 AWS 的新手。我正在尝试在 EMR 中执行 hello world 代码。我的代码在 S3 存储桶中。我的第一个代码是单行代码:

print ('Hello World')

我通过添加步骤提交了我的代码:

在此处输入图像描述

我的日志说:

Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>

我的第二个代码是:

import val


from pyspark.python.pyspark.shell import spark

val jdbcDF = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xxxx").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "pet").option("user", "root").option("password", "xxxx").load()
print("done")

jdbcDF.write.format("json").mode("append").save("${s3://demo-xxxx}")

我收到相同的访问被拒绝错误。

请指导我。不确定集群本身是否没有 S3 访问权限。如果是这样,我该如何提供访问权限。谢谢。

标签: amazon-web-servicesamazon-s3amazon-emr

解决方案


它绝对是 S3 访问问题。

每个节点 (EC2) 都有一个 IAM 角色来访问 AWS 资源。并且该 EMR EC2 IAM 角色应该对您的S3 存储桶
具有 putObject 访问权限demo-xxxx

请参阅此 AWS 文档


推荐阅读