apache-spark - 在与红移集群和 S3 不同区域的 EC2/EMR 上使用 spark-redshift
问题描述
我们正在使用 spark-redshift 库从我们的 RS 集群中卸载。
S3 存储桶和集群都在 us-west-2 区域中运行。但是,我们的 EMR 正在运行 us-east-1 区域。
我们不断收到必须使用正确端点的错误。
Invalid operation: S3ServiceException:The bucket you are attempting to access must be addressed using the specified endpoint.
如果 S3 与集群位于同一区域,是否有办法从不同区域的 RS 卸载?我不知道在这种情况下有任何硬性限制。这是我们的卸载命令:
var df = spark.read.format("com.databricks.spark.redshift")
.option("url", "jdbc:redshift://URL")
.option("query", "(SELECT count(*) from TABLE)")
.option("tempdir","s3a://WESTBUCKET/PATH")
.option("region","us-west-2").load
解决方案
Redshift 4789 版本会将 REGION 选项添加到 UNLOAD 语句中,因此您可以指定存储桶区域。
Amazon Redshift:添加了对带有 REGION 参数的跨区域 UNLOAD 的支持。
您的集群很可能会在为此版本指定的时间段内的一个维护时段内升级到此版本。
推荐阅读
- php - 如何使用购物车中已有的 AJAX IF 项目在 Woocommerce 中隐藏添加到购物车按钮
- python - 将字符串转换为熊猫数据框的条件
- pyqt5 - PyQt5 Stylesheet For QWidget's Child To Change QWidget
- c# - 在 VS Code 中重命名重构
- python - 具有多个 set.seed() 的唯一变量
- excel - 如何从打开的文件中获取数据?
- mysql - Laravel havingRaw 适用于 get() 但不适用于 count()
- java - 对较低版本目标 JVM 的 Java 代理支持
- python - 如何枚举字典键不是从 0 而是从 1?在下面的例子中
- material-ui - Material-UI下载图标