使用 spark -redshift 连接器将 spark 连接到 redshift 时出现问题
issue while connecting spark to redshift using spark -redshift connector
我需要将 spark 连接到我的 redshift 实例以生成数据。
我将 spark 1.6 与 scala 2.10 一起使用。
使用了兼容的 jdbc 连接器和 spark-redshift 连接器。
但我面临一个奇怪的问题:
我正在使用 pyspark
df=sqlContext.read\
.format("com.databricks.spark.redshift")\
.option("query","select top 10 * from fact_table")\
.option("url","jdbc:redshift://redshift_host:5439/events?user=usernmae&password=pass")\
.option("tempdir","s3a://redshift-archive/").load()
当我执行 df.show()
时,它会提示我的存储桶权限被拒绝的错误。
这很奇怪,因为我可以看到正在我的存储桶中创建的文件,但可以读取它们。
PS .我也设置了 accesskey 和 secret access key.
PS。我也对 s3a 和 s3n 文件系统感到困惑。
使用的连接器:
https://github.com/databricks/spark-redshift/tree/branch-1.x
似乎没有为 Redshift 设置访问 S3 文件的权限。请按照以下步骤
- 向允许 Redshift 帐户的存储桶添加存储桶策略
访问 在 redshift 帐户中创建一个 IAM 角色,redshift 可以
假设授予新用户访问 S3 存储桶的权限
创建的角色将角色与 Redshift 集群相关联
- 运行 复制语句
我需要将 spark 连接到我的 redshift 实例以生成数据。 我将 spark 1.6 与 scala 2.10 一起使用。 使用了兼容的 jdbc 连接器和 spark-redshift 连接器。 但我面临一个奇怪的问题: 我正在使用 pyspark
df=sqlContext.read\
.format("com.databricks.spark.redshift")\
.option("query","select top 10 * from fact_table")\
.option("url","jdbc:redshift://redshift_host:5439/events?user=usernmae&password=pass")\
.option("tempdir","s3a://redshift-archive/").load()
当我执行 df.show()
时,它会提示我的存储桶权限被拒绝的错误。
这很奇怪,因为我可以看到正在我的存储桶中创建的文件,但可以读取它们。
PS .我也设置了 accesskey 和 secret access key.
PS。我也对 s3a 和 s3n 文件系统感到困惑。 使用的连接器: https://github.com/databricks/spark-redshift/tree/branch-1.x
似乎没有为 Redshift 设置访问 S3 文件的权限。请按照以下步骤
- 向允许 Redshift 帐户的存储桶添加存储桶策略
访问 在 redshift 帐户中创建一个 IAM 角色,redshift 可以
假设授予新用户访问 S3 存储桶的权限 创建的角色将角色与 Redshift 集群相关联
- 运行 复制语句