【发布时间】:2016-07-10 00:11:38
【问题描述】:
我想知道 PySpark 是否支持使用 IAM 角色进行 S3 访问。具体来说,我有一个业务限制,我必须承担 AWS 角色才能访问给定的存储桶。这在使用 boto 时很好(因为它是 API 的一部分),但我无法找到关于 PySpark 是否支持开箱即用的明确答案。
理想情况下,我希望能够在本地以独立模式运行时担任一个角色,并将我的 SparkContext 指向该 s3 路径。我已经看到非 IAM 调用通常会跟随:
spark_conf = SparkConf().setMaster('local[*]').setAppName('MyApp')
sc = SparkContext(conf=spark_conf)
rdd = sc.textFile('s3://<MY-ID>:<MY-KEY>@some-bucket/some-key')
是否存在用于提供 IAM 信息的类似方法? :
rdd = sc.textFile('s3://<MY-ID>:<MY-KEY>:<MY-SESSION>@some-bucket/some-key')
或
rdd = sc.textFile('s3://<ROLE-ARN>:<ROLE-SESSION-NAME>@some-bucket/some-key')
如果没有,使用 IAM 凭据的最佳做法是什么?有可能吗?
我正在使用 Python 1.7 和 PySpark 1.6.0
谢谢!
【问题讨论】:
标签: python amazon-web-services amazon-s3 pyspark amazon-iam