1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 我的理解是您正在使用 repartition 或 coalesce 命令将数据重新分区到 1 个分区(有 1 个文件)。
现在您必须考虑 Spark 在分布式集群中运行,并且每个分区都由不同的执行程序管理,因此在正常执行中,当您从 Oracle 读取数据时,即使它在摄取期间被排序,它也可能被拆分和重新合并在不保留排序顺序之后。 这就是为什么没有选中 Autoscaling 时数据没有排序的原因。
现在,当启用自动缩放时,您告诉 Glue 仅启动实际需要的执行程序数。这与 Spark Lazy 评估 和您的 repartition(1) 相结合可以使胶水仅启动一个执行程序并且因此按照您的排序顺序读取和写入数据。
要验证它,您可以查看 2 个作业的 Spark UI 并查看有多少执行者在作业期间随时运行。
相关内容
- AWS 官方已更新 3 年前