如何完成编写数据块作业脚本

how to script databricks jobs with completion

我正在尝试 运行 Databricks 上的工作,每次都进行细微的更改,并计算每次需要多长时间。

当我通过命令行在删除服务器上开始作业时,例如databricks jobs run-now --job-id ...,有没有办法对输出进行计时?有什么方法可以让我知道作业何时完成?

我想 运行 在 Perl 中使用类似(伪代码)的东西:

use Time::HiRes;
foreach my $entry (@entries) {
   my $time1 = Time::HiRes::time();
   system("databricks run-now --job-id ...")
   my $time2 = Time::HiRes::time();
   my $run_time = $time2-$time1;
}

但问题是 databricks 命令只提交作业,它不会给出 return,至少据我所知是这样。

databricks runs list --job-id <job_id>

将 return table 列出有关特定工作的所有 运行 的信息。

然后对于每个 运行:

databricks runs get --run-id <run_id>

将 return json 包含有关作业的各种元数据 运行。

运行 的总持续时间是 setup_durationexecution_durationcleanup_duration 的总和。时间以毫秒为单位,要阅读更多内容,请参阅:

https://docs.databricks.com/api/latest/jobs.html