【发布时间】:2022-01-27 02:23:55
【问题描述】:
我有一个在 Synapse 火花池上执行的火花代码,如下所示。它从专用的 SQL 池表中读取数据,执行映射操作并将数据写回专用的 SQL 池表中。
一个写入操作会生成两个作业
在作业 0 中,数据被写入 ADLS
在作业1中,相同的输入数据被重新读取重新处理并写入目标SQL池表
当 Job 0(第一个作业)已经准备好输出数据时,为什么还需要 Job 1(第二个作业)和相关的重新处理?
驱动程序日志捕获以下步骤的执行:
第 1 步 - 在 Gen2 上创建已处理数据(火花输出)的暂存目录
第 2 步 - 在 Gen2 上提取输入表
第 3 步 - 作业 0 执行(在第 1 步的暂存目录中创建输出)
第 4 步 - 从输入表中重新提取数据(这在第 2 步中已经可用)
第 5 步 - 将 Job 0 输出加载到 SQL 池表中
第 6 步 - 执行作业 1(重新执行与作业 0 相同的操作)
第 4 步和第 6 步本质上是多余的
【问题讨论】:
标签: apache-spark azure-synapse