amazon-web-services - 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 访问权限。如果是这样,我该如何提供访问权限。谢谢。
解决方案
它绝对是 S3 访问问题。
每个节点 (EC2) 都有一个 IAM 角色来访问 AWS 资源。并且该 EMR EC2 IAM 角色应该对您的S3 存储桶
具有 putObject 访问权限demo-xxxx
请参阅此 AWS 文档
推荐阅读
- apache-spark - 如何在pyspark中将rdd行转换为带有json结构的数据框?
- qt - 如果程序已最大化,我将其最小化,然后单击返回到处于窗口模式的程序?
- openxml - Word插件使用office.js在contentControl中插入带有样式的复杂列表结构是否完成?
- google-apps-script - 在下一个空单元格中输入数据的脚本
- perl - for 循环只运行一次 PERL,参数 "" 在 substr 中不是数字
- asp.net-core - 创建一个接受 HTML 或其他组件作为参数的视图组件模板/容器
- c# - 使用 C# Moq 测试获取参数计数不匹配?
- python - 在 Python 中输出文件的内容
- game-maker-language - GameMaker 2 中的变量问题
- javascript - 将数据结构分配给 chartjs 属性,而不是单独分配