工作 API 2.0
重要
本文記錄工作 API 的 2.0 版。 不過,Databricks 建議針對新的和現有的用戶端和指令使用工作 API 2.1。 如需 2.0 到 2.1 版本變更的詳細資料,請參閱從工作 API 2.0 更新至 2.1。
工作 API 可讓您建立、編輯和刪除工作。 對工作 API 的要求允許的大小上限為 10MB。
如需使用 Azure Databricks 工作支援多個任務協調流程的工作 API 更新的詳細資訊,請參閱從工作 API 2.0 更新至 2.1。
警告
您絕不應硬式編碼祕密,或將其以純文字儲存。 在 Databricks CLI 中使用祕密 API來管理祕密 API。 使用 Secrets 公用程式 (dbutils.secrets) 參考筆記本和工作中的祕密。
注意
如果您在提出工作 API 要求時收到 500 層級的錯誤,Databricks 建議重試要求最多 10 分鐘 (重試間隔至少 30 秒)。
重要
若要存取 Databricks REST API,您必須驗證。
建立
端點 | HTTP 方法 |
---|---|
2.0/jobs/create |
POST |
建立新作業。
範例
此範例會建立一個工作,該工作會在每晚下午 10:15 執行 JAR 任務。
Request
curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/create \
--data @create-job.json \
| jq .
create-job.json
:
{
"name": "Nightly model training",
"new_cluster": {
"spark_version": "7.3.x-scala2.12",
"node_type_id": "Standard_D3_v2",
"num_workers": 10
},
"libraries": [
{
"jar": "dbfs:/my-jar.jar"
},
{
"maven": {
"coordinates": "org.jsoup:jsoup:1.7.2"
}
}
],
"timeout_seconds": 3600,
"max_retries": 1,
"schedule": {
"quartz_cron_expression": "0 15 22 * * ?",
"timezone_id": "America/Los_Angeles"
},
"spark_jar_task": {
"main_class_name": "com.databricks.ComputeModels"
}
}
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。create-job.json
的內容,包含適合您解決方案的欄位。
回應
{
"job_id": 1
}
要求結構
重要
- 當您在新工作叢集上執行工作時,工作會被視為工作計算 (自動化) 工作負載,且受限於工作計算價格。
- 當您在現有的全用途叢集上執行工作時,其會被視為全用途計算 (互動式) 工作負載,且受限於全用途計算價格。
欄位名稱 | 類型 | 描述 |
---|---|---|
existing_cluster_id 或 new_cluster |
STRING 或 NewCluster |
如果是 existing_cluster_id,則為將用於該工作的所有執行的現有叢集的 ID。 在現有叢集上執行工作時,如果叢集停止回應,您可能需要手動重新啟動。 我們建議在新的叢集上執行工作,以提高可靠性。 如果是 new_cluster,則為將針對每個執行建立的叢集描述。 如果指定 PipelineTask,此欄位可為空白。 |
notebook_task 或 spark_jar_task 或spark_python_task 或 spark_submit_task 或pipeline_task 或 run_job_task |
NotebookTask 或 SparkJarTask 或 SparkPythonTask 或 SparkSubmitTask 或 PipelineTask 或 RunJobTask | 如果是 notebook_task,則表示此工作應該執行筆記本。 此欄位可能不會與 spark_jar_task 一起指定。 如果是 spark_jar_task,則表示此工作應該執行 JAR。 如果是 spark_python_task,則表示此工作應該執行 Python 檔案。 如果是 spark_submit_task,則表示 Spark 提交指令應該啟動此工作。 如果是 pipeline_task,則表示此工作應該執行 Delta Live Tables 管線。 如果是 run_job_task,則表示此工作應該執行另一個工作。 |
name |
STRING |
工作的選用名稱。 預設值是 Untitled 。 |
libraries |
程式庫的陣列 | 要在負責執行工作的叢集上,即將安裝的程式庫的選用清單。 預設值是空白清單。 |
email_notifications |
JobEmailNotifications | 一組選用的電子郵件地址,在此工作的執行開始和完成時以及刪除此工作時收到通知。 預設行為是不要傳送任何電子郵件。 |
webhook_notifications |
WebhookNotifications | 一組選用的系統目的地,在此工作的執行開始、完成或失敗時收到通知。 |
notification_settings |
JobNotificationSettings | 將通知傳送至此工作的每個 email_notifications 和 webhook_notifications 時所使用的選用通知設定。 |
timeout_seconds |
INT32 |
選用逾時,可套用至此工作的每個執行。 預設行為是沒有逾時。 |
max_retries |
INT32 |
重試失敗執行的選用次數上限。 如果執行完成狀態如下,則視為失敗:FAILED result_state 或INTERNAL_ERROR life_cycle_state . 值 -1 表示無限期重試,而值 0 表示永不重試。 預設行為是永不重試。 |
min_retry_interval_millis |
INT32 |
從失敗執行開始到隨後的重試執行之間的選用最小重試間隔,以毫秒為單位。 預設行為是立即重試失敗執行。 |
retry_on_timeout |
BOOL |
選用原則,指定是否要在工作逾時時重試。預設行為是逾時時不重試。 |
schedule |
CronSchedule | 此工作的選用定期排程。 預設行為是,在工作 UI 中按下 [立即執行] 或將 API 要求傳送至 runNow ,以在觸發時執行工作。 |
max_concurrent_runs |
INT32 |
工作並行執行的選用允許數目上限。 如果您想要能夠同時執行相同工作的多個執行,請設定此值。 例如,如果您頻繁觸發工作,並且想要允許連續執行彼此重疊,或是如果您想要觸發輸入參數不同的多個執行,這非常有用。 此設定僅會影響新的執行。 例如,假設工作的並行存取是 4,而且有 4 個並行作用中的執行。 然後,將並行設定為 3 不會終止任何作用中的執行。 不過,從那時起,除非作用中的執行少於 3 個,否則會略過新的執行。 此值不能超過 1000。 將此值設定為 0 會導致略過所有新的執行。 預設行為是只允許 1 個並行執行。 |
回覆結構
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
新建立的工作的正式識別碼。 |
清單
端點 | HTTP 方法 |
---|---|
2.0/jobs/list |
GET |
列出所有作業。
範例
要求
curl --netrc --request GET \
https://<databricks-instance>/api/2.0/jobs/list \
| jq .
將 <databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如 adb-1234567890123456.7.azuredatabricks.net
。
回應
{
"jobs": [
{
"job_id": 1,
"settings": {
"name": "Nightly model training",
"new_cluster": {
"spark_version": "7.3.x-scala2.12",
"node_type_id": "Standard_D3_v2",
"num_workers": 10
},
"libraries": [
{
"jar": "dbfs:/my-jar.jar"
},
{
"maven": {
"coordinates": "org.jsoup:jsoup:1.7.2"
}
}
],
"timeout_seconds": 100000000,
"max_retries": 1,
"schedule": {
"quartz_cron_expression": "0 15 22 * * ?",
"timezone_id": "America/Los_Angeles",
"pause_status": "UNPAUSED"
},
"spark_jar_task": {
"main_class_name": "com.databricks.ComputeModels"
}
},
"created_time": 1457570074236
}
]
}
回覆結構
欄位名稱 | 類型 | 描述 |
---|---|---|
jobs |
工作的陣列 | 工作清單。 |
刪除
端點 | HTTP 方法 |
---|---|
2.0/jobs/delete |
POST |
刪除工作,並將電子郵件傳送至 JobSettings.email_notifications
中指定的位址。 如果工作已經移除,則不會發生任何動作。 移除工作之後,工作 UI 或 API 中不會顯示其詳細資料,也不會顯示其執行歷程記錄。 完成此要求後,保證會刪除該工作。 不過,收到此要求之前,作用中的執行可能仍為作用中。 它們將會以非同步方式終止。
範例
curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/delete \
--data '{ "job_id": <job-id> }'
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。<job-id>
取代為工作的識別碼,例如123
。
此範例會使用 .netrc 檔案。
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
要刪除的工作的正式識別碼。 這是必要欄位。 |
取得
端點 | HTTP 方法 |
---|---|
2.0/jobs/get |
GET |
擷取單一工作的相關資訊。
範例
要求
curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/jobs/get?job_id=<job-id>' \
| jq .
或:
curl --netrc --get \
https://<databricks-instance>/api/2.0/jobs/get \
--data job_id=<job-id> \
| jq .
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。<job-id>
取代為工作的識別碼,例如123
。
回應
{
"job_id": 1,
"settings": {
"name": "Nightly model training",
"new_cluster": {
"spark_version": "7.3.x-scala2.12",
"node_type_id": "Standard_D3_v2",
"num_workers": 10
},
"libraries": [
{
"jar": "dbfs:/my-jar.jar"
},
{
"maven": {
"coordinates": "org.jsoup:jsoup:1.7.2"
}
}
],
"timeout_seconds": 100000000,
"max_retries": 1,
"schedule": {
"quartz_cron_expression": "0 15 22 * * ?",
"timezone_id": "America/Los_Angeles",
"pause_status": "UNPAUSED"
},
"spark_jar_task": {
"main_class_name": "com.databricks.ComputeModels"
}
},
"created_time": 1457570074236
}
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
要擷取相關資訊的工作的正式識別碼。 這是必要欄位。 |
回覆結構
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
此工作的正式識別碼。 |
creator_user_name |
STRING |
建立者使用者名稱。 如果使用者已刪除,此欄位將不會包含在回應中。 |
settings |
JobSettings | 此工作及其所有執行的設定。 您可以使用重設或更新端點來更新這些設定。 |
created_time |
INT64 |
建立此工作的時間,以 Epoch 毫秒為單位 (自 1970 年 1 月 1 日 (UTC) 起的毫秒數)。 |
重設
端點 | HTTP 方法 |
---|---|
2.0/jobs/reset |
POST |
覆寫特定工作的所有設定。 使用更新端點,部分更新工作設定。
範例
此範例要求讓工作 2 與建立範例中的工作 1 相同。
curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/reset \
--data @reset-job.json \
| jq .
reset-job.json
:
{
"job_id": 2,
"new_settings": {
"name": "Nightly model training",
"new_cluster": {
"spark_version": "7.3.x-scala2.12",
"node_type_id": "Standard_D3_v2",
"num_workers": 10
},
"libraries": [
{
"jar": "dbfs:/my-jar.jar"
},
{
"maven": {
"coordinates": "org.jsoup:jsoup:1.7.2"
}
}
],
"timeout_seconds": 100000000,
"max_retries": 1,
"schedule": {
"quartz_cron_expression": "0 15 22 * * ?",
"timezone_id": "America/Los_Angeles",
"pause_status": "UNPAUSED"
},
"spark_jar_task": {
"main_class_name": "com.databricks.ComputeModels"
}
}
}
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。reset-job.json
的內容,包含適合您解決方案的欄位。
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
要重設的工作的正式識別碼。 這是必要欄位。 |
new_settings |
JobSettings | 工作的新設定。 這些設定會完全取代舊設定。 欄位 JobSettings.timeout_seconds 的變更會套用至作用中的執行。 其他欄位的變更僅會套用至未來的執行。 |
更新
端點 | HTTP 方法 |
---|---|
2.0/jobs/update |
POST |
新增、變更或移除現有工作的特定設定。 使用重設端點覆寫所有工作設定。
範例
此範例要求會移除程式庫,並將電子郵件通知設定新增至建立範例中定義的工作 1。
curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/update \
--data @update-job.json \
| jq .
update-job.json
:
{
"job_id": 1,
"new_settings": {
"existing_cluster_id": "1201-my-cluster",
"email_notifications": {
"on_start": [ "someone@example.com" ],
"on_success": [],
"on_failure": []
}
},
"fields_to_remove": ["libraries"]
}
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。update-job.json
的內容,包含適合您解決方案的欄位。
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
要更新的工作的正式識別碼。 這是必要欄位。 |
new_settings |
JobSettings | 工作的新設定。 在 new_settings 中指定的最上層欄位會完全取代陣列以外的欄位。 陣列會根據各自的索引鍵欄位合併,例如 task_key 或job_cluster_key ,並會完全取代具有相同索引鍵的陣列項目。 除了陣列合併之外,不支援部分更新巢狀欄位。欄位 JobSettings.timeout_seconds 的變更會套用至作用中的執行。 其他欄位的變更僅會套用至未來的執行。 |
fields_to_remove |
STRING 的陣列 |
移除工作設定中的最上層欄位。 除了 tasks 和 job_clusters 陣列中的項目外,不支援移除巢狀欄位。 例如,以下是此欄位的有效引數:["libraries", "schedule", "tasks/task_1", "job_clusters/Default"] 這是選用欄位。 |
立即執行
重要
- 工作區受限於 1000 個並行作業執行。
429 Too Many Requests
回應會在您要求無法立即啟動的執行時傳回。 - 工作區在一小時內可以建立的作業數目限制為 10000 (包括「執行提交」)。 這項限制也會影響 REST API 和筆記本工作流程所建立的作業。
- 工作區最多可包含 12000 個儲存的作業。
- 作業最多可以包含 100 個工作。
端點 | HTTP 方法 |
---|---|
2.0/jobs/run-now |
POST |
立即執行工作,並傳回觸發執行的 run_id
。
範例
curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/run-now \
--data @run-job.json \
| jq .
run-job.json
:
筆記本工作的範例要求:
{
"job_id": 1,
"notebook_params": {
"name": "john doe",
"age": "35"
}
}
JAR 工作的範例要求:
{
"job_id": 2,
"jar_params": [ "john doe", "35" ]
}
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。run-job.json
的內容,包含適合您解決方案的欄位。
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
|
jar_params |
STRING 的陣列 |
具有 JAR 任務的工作的參數清單,例如 "jar_params": ["john doe", "35"] 。 參數會用來叫用 Spark JAR 任務中指定的主要類別的 main 函式。 如果未在 run-now 上指定,則會預設為空白清單。 jar_params 不會與 notebook_params 一起指定。 此欄位的 JSON 表示法 (即 {"jar_params":["john doe","35"]} ) 不能超過 10,000 個位元組。 |
notebook_params |
ParamPair 的對應 | 具有筆記本任務的工作從索引鍵到值的對應,例如"notebook_params": {"name": "john doe", "age": "35"} . 對應會傳遞至筆記本,並可透過 dbutils.widgets.get 函式存取。如果未在 run-now 上指定,則觸發執行會使用工作的基本參數。您無法將 notebook_params 與 jar_params 一起指定。 此欄位的 JSON 表示法 (即 {"notebook_params":{"name":"john doe","age":"35"}} ) 不能超過 10,000 個位元組。 |
python_params |
STRING 的陣列 |
具有 Python 任務的工作的參數清單,例如 "python_params": ["john doe", "35"] 。 這些參數將作為命令列參數傳遞至 Python 檔案。 如果在 run-now 上指定,則會覆寫工作設定中指定的參數。 此欄位的 JSON 表示法 (即 {"python_params":["john doe","35"]} ) 不能超過 10,000 個位元組。 |
spark_submit_params |
STRING 的陣列 |
具有 Spark 提交任務的工作參數清單,例如"spark_submit_params": ["--class", "org.apache.spark.examples.SparkPi"] . 這些參數將作為命令列參數傳遞至 spark-submit 指令。 如果在 run-now 上指定,則會覆寫工作設定中指定的參數。 此欄位的 JSON 表示法不能超過 10,000 個位元組。 |
idempotency_token |
STRING |
選用權杖,可保證工作執行要求的等冪性。 如果已存在具有所提供權杖的執行,要求不會建立新的執行,而是傳回現有執行的識別碼。 如果已刪除具有所提供權杖的執行,則會傳回錯誤。 如果您指定等冪權杖,則在失敗時,您可以重試直到要求成功為止。 Azure Databricks 保證只有一個執行是以該等冪權杖啟動。 此權杖最多只能有 64 個字元。 如需詳細資訊,請參閱如何確保工作的等冪性。 |
回覆結構
欄位名稱 | 類型 | 描述 |
---|---|---|
run_id |
INT64 |
新觸發執行的全域唯一識別符。 |
number_in_job |
INT64 |
此執行在工作的所有執行中的序號。 |
執行提交
重要
- 工作區受限於 1000 個並行作業執行。
429 Too Many Requests
回應會在您要求無法立即啟動的執行時傳回。 - 工作區在一小時內可以建立的作業數目限制為 10000 (包括「執行提交」)。 這項限制也會影響 REST API 和筆記本工作流程所建立的作業。
- 工作區最多可包含 12000 個儲存的作業。
- 作業最多可以包含 100 個工作。
端點 | HTTP 方法 |
---|---|
2.0/jobs/runs/submit |
POST |
提交一次性執行。 此端點可讓您直接提交工作負載,而不需要建立工作。 使用 jobs/runs/get
API 來檢查提交工作之後的執行狀態。
範例
要求
curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/runs/submit \
--data @submit-job.json \
| jq .
submit-job.json
:
{
"run_name": "my spark task",
"new_cluster": {
"spark_version": "7.3.x-scala2.12",
"node_type_id": "Standard_D3_v2",
"num_workers": 10
},
"libraries": [
{
"jar": "dbfs:/my-jar.jar"
},
{
"maven": {
"coordinates": "org.jsoup:jsoup:1.7.2"
}
}
],
"spark_jar_task": {
"main_class_name": "com.databricks.ComputeModels"
}
}
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。submit-job.json
的內容,包含適合您解決方案的欄位。
回應
{
"run_id": 123
}
要求結構
重要
- 當您在新工作叢集上執行工作時,工作會被視為工作計算 (自動化) 工作負載,且受限於工作計算價格。
- 當您在現有的全用途叢集上執行工作時,其會被視為全用途計算 (互動式) 工作負載,且受限於全用途計算價格。
欄位名稱 | 類型 | 描述 |
---|---|---|
existing_cluster_id 或 new_cluster |
STRING 或 NewCluster |
如果是 existing_cluster_id,則為將用於該工作的所有執行的現有叢集的 ID。 在現有叢集上執行工作時,如果叢集停止回應,您可能需要手動重新啟動。 我們建議在新的叢集上執行工作,以提高可靠性。 如果是 new_cluster,則為將針對每個執行建立的叢集描述。 如果指定 PipelineTask,則此欄位可為空白。 |
notebook_task 或 spark_jar_task 或spark_python_task 或 spark_submit_task 或pipeline_task 或 run_job_task |
NotebookTask 或 SparkJarTask 或 SparkPythonTask 或 SparkSubmitTask 或 PipelineTask 或 RunJobTask | 如果是 notebook_task,則表示此工作應該執行筆記本。 此欄位可能不會與 spark_jar_task 一起指定。 如果是 spark_jar_task,則表示此工作應該執行 JAR。 如果是 spark_python_task,則表示此工作應該執行 Python 檔案。 如果是 spark_submit_task,則表示 Spark 提交指令應該啟動此工作。 如果是 pipeline_task,則表示此工作應該執行 Delta Live Tables 管線。 如果是 run_job_task,則表示此工作應該執行另一個工作。 |
run_name |
STRING |
執行的選用名稱。 預設值是 Untitled 。 |
webhook_notifications |
WebhookNotifications | 一組選用的系統目的地,在此工作的執行開始、完成或失敗時收到通知。 |
notification_settings |
JobNotificationSettings | 將通知傳送至此執行的每個 webhook_notifications 時所使用的選用通知設定。 |
libraries |
程式庫的陣列 | 要在負責執行工作的叢集上,即將安裝的程式庫的選用清單。 預設值是空白清單。 |
timeout_seconds |
INT32 |
選用逾時,可套用至此工作的每個執行。 預設行為是沒有逾時。 |
idempotency_token |
STRING |
選用權杖,可保證工作執行要求的等冪性。 如果已存在具有所提供權杖的執行,要求不會建立新的執行,而是傳回現有執行的識別碼。 如果已刪除具有所提供權杖的執行,則會傳回錯誤。 如果您指定等冪權杖,則在失敗時,您可以重試直到要求成功為止。 Azure Databricks 保證只有一個執行是以該等冪權杖啟動。 此權杖最多只能有 64 個字元。 如需詳細資訊,請參閱如何確保工作的等冪性。 |
回覆結構
欄位名稱 | 類型 | 描述 |
---|---|---|
run_id |
INT64 |
新提交的執行的正式識別碼。 |
執行清單
端點 | HTTP 方法 |
---|---|
2.0/jobs/runs/list |
GET |
依開始時間降序排列執行清單。
注意
執行會在 60 天後自動移除。 如果您想要參考超過 60 天的時間,您應該在其過期之前,儲存舊的執行結果。 若要使用 UI 匯出,請參閱匯出工作執行結果。 若要使用工作 API 匯出,請參閱執行匯出。
範例
要求
curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/jobs/runs/list?job_id=<job-id>&active_only=<true-false>&offset=<offset>&limit=<limit>&run_type=<run-type>' \
| jq .
或:
curl --netrc --get \
https://<databricks-instance>/api/2.0/jobs/runs/list \
--data 'job_id=<job-id>&active_only=<true-false>&offset=<offset>&limit=<limit>&run_type=<run-type>' \
| jq .
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。<job-id>
取代為工作的識別碼,例如123
。- “
<true-false>
為true
或false
”。 <offset>
為offset
值。<limit>
為limit
值。<run-type>
為run_type
值。
回應
{
"runs": [
{
"job_id": 1,
"run_id": 452,
"number_in_job": 5,
"state": {
"life_cycle_state": "RUNNING",
"state_message": "Performing action"
},
"task": {
"notebook_task": {
"notebook_path": "/Users/donald@duck.com/my-notebook"
}
},
"cluster_spec": {
"existing_cluster_id": "1201-my-cluster"
},
"cluster_instance": {
"cluster_id": "1201-my-cluster",
"spark_context_id": "1102398-spark-context-id"
},
"overriding_parameters": {
"jar_params": ["param1", "param2"]
},
"start_time": 1457570074236,
"end_time": 1457570075149,
"setup_duration": 259754,
"execution_duration": 3589020,
"cleanup_duration": 31038,
"run_duration": 3879812,
"trigger": "PERIODIC"
}
],
"has_more": true
}
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
active_only 或 completed_only |
BOOL 或 BOOL |
如果 active_only 為 true ,則結果中只會包含作用中的執行,否則會同時列出作用中和已完成的執行。 作用中的執行是在 PENDING 、RUNNING 或 TERMINATING RunLifecycleState 中的執行。 當 completed_only 為 true 時,這個欄位不能為 true 。如果 completed_only 為 true ,則結果中只會包含已完成的執行,否則會同時列出作用中和已完成的執行。 當 active_only 為 true 時,這個欄位不能為 true 。 |
job_id |
INT64 |
要列出其執行的工作。 如果省略,則工作服務會列出所有工作的執行。 |
offset |
INT32 |
傳回的第一個執行相對於最新執行的位移。 |
limit |
INT32 |
要傳回的執數目。 此值應大於 0 且小於 1000。 預設值為 20。 如果要求指定的限制為 0,服務會改用上限代替。 |
run_type |
STRING |
要傳回的執行的類型。 如需執行類型的描述,請參閱執行。 |
回覆結構
欄位名稱 | 類型 | 描述 |
---|---|---|
runs |
執行的陣列 | 從最近開始到最少使用的執行清單。 |
has_more |
BOOL |
如果為 true,則與所提供篩選條件相符的其他執行可供列出。 |
執行取得
端點 | HTTP 方法 |
---|---|
2.0/jobs/runs/get |
GET |
擷取執行的中繼資料。
注意
執行會在 60 天後自動移除。 如果您想要參考超過 60 天的時間,您應該在其過期之前,儲存舊的執行結果。 若要使用 UI 匯出,請參閱匯出工作執行結果。 若要使用工作 API 匯出,請參閱執行匯出。
範例
要求
curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/jobs/runs/get?run_id=<run-id>' \
| jq .
或:
curl --netrc --get \
https://<databricks-instance>/api/2.0/jobs/runs/get \
--data run_id=<run-id> \
| jq .
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。<run-id>
取代為執行的識別碼,例如123
。
回應
{
"job_id": 1,
"run_id": 452,
"number_in_job": 5,
"state": {
"life_cycle_state": "RUNNING",
"state_message": "Performing action"
},
"task": {
"notebook_task": {
"notebook_path": "/Users/someone@example.com/my-notebook"
}
},
"cluster_spec": {
"existing_cluster_id": "1201-my-cluster"
},
"cluster_instance": {
"cluster_id": "1201-my-cluster",
"spark_context_id": "1102398-spark-context-id"
},
"overriding_parameters": {
"jar_params": ["param1", "param2"]
},
"start_time": 1457570074236,
"end_time": 1457570075149,
"setup_duration": 259754,
"execution_duration": 3589020,
"cleanup_duration": 31038,
"run_duration": 3879812,
"trigger": "PERIODIC"
}
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
run_id |
INT64 |
要為其擷取中繼資料的執行的正式識別碼。 這是必要欄位。 |
回覆結構
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
包含此執行的工作的正式識別碼。 |
run_id |
INT64 |
執行的正式識別碼。 此識別碼在所有工作的所有執行中都是唯一的。 |
number_in_job |
INT64 |
此執行在工作的所有執行中的序號。 此值從 1 開始。 |
original_attempt_run_id |
INT64 |
如果此執行是先前執行嘗試的重試,則此欄位會包含原始嘗試的 run_id;否則,其會與 run_id 相同。 |
state |
RunState | 執行的結果和生命週期狀態。 |
schedule |
CronSchedule | 如果定期排程者觸發此排程,就會觸發此執行的 Cron 排程。 |
task |
JobTask | 執行所執行的任務 (如果有的話)。 |
cluster_spec |
ClusterSpec | 建立此執行時工作叢集規格的快照。 |
cluster_instance |
ClusterInstance | 用於此執行的叢集。 如果指定執行使用新的叢集,則一旦工作服務要求執行叢集,就會設定此欄位。 |
overriding_parameters |
RunParameters | 用於此執行的參數。 |
start_time |
INT64 |
開始此執行的時間,以 Epoch 毫秒為單位 (自 1970 年 1 月 1 日 (UTC) 起的毫秒數)。 這可能不是工作任務開始執行的時間,例如,如果工作排定在新叢集上執行,這就是發出叢集建立呼叫的時間。 |
end_time |
INT64 |
結束此執行的時間,以 Epoch 毫秒為單位 (自 1970 年 1 月 1 日 (UTC) 起的毫秒數)。 如果工作仍在執行中,此欄位將會設定為 0。 |
setup_duration |
INT64 |
設定叢集所需的時間,以毫秒為單位。 對於在新叢集上執行的執行,這是叢集建立時間;對於在現有叢集上執行的執行,此時間應該很短。 執行的總持續時間是以下各項的總和:setup_duration 、execution_duration 和 cleanup_duration 。 對於多工工作執行,setup_duration 欄位設定為 0。 多工工作執行的總持續時間是run_duration 欄位。 |
execution_duration |
INT64 |
執行 JAR 或筆記本中命令所需的時間 (以毫秒為單位),直到它們完成、失敗、逾時、取消,或遇到了未預期的錯誤。 執行的總持續時間是以下各項的總和:setup_duration 、execution_duration 和cleanup_duration . 對於多工工作執行,execution_duration 欄位設定為 0。 多工工作執行的總持續時間是 run_duration 欄位的值。 |
cleanup_duration |
INT64 |
終止叢集並清理任何關聯的成品所需的時間,以毫秒為單位。 執行的總持續時間是以下各項的總和:setup_duration 、execution_duration 和 cleanup_duration 。 對於多工工作執行,cleanup_duration 欄位設定為 0。 多工工作執行的總持續時間是 run_duration 欄位的值。 |
run_duration |
INT64 |
工作執行及完成其所有修復的時間,以毫秒為單位。 此欄位只會針對多工工作執行設定,而不是任務執行。 任務執行的持續時間是以下各項的總和:setup_duration 、execution_duration 和 cleanup_duration 。 |
trigger |
TriggerType | 引發此執行的觸發程序的類型。 |
creator_user_name |
STRING |
建立者使用者名稱。 如果使用者已刪除,此欄位將不會包含在回應中 |
run_page_url |
STRING |
執行詳細資料頁面的 URL。 |
執行匯出
端點 | HTTP 方法 |
---|---|
2.0/jobs/runs/export |
GET |
匯出和擷取工作執行任務。
注意
僅能以 HTML 格式匯出筆記本執行。 匯出其他類型的執行將會失敗。
範例
要求
curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/jobs/runs/export?run_id=<run-id>' \
| jq .
或:
curl --netrc --get \
https://<databricks-instance>/api/2.0/jobs/runs/export \
--data run_id=<run-id> \
| jq .
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。<run-id>
取代為執行的識別碼,例如123
。
回應
{
"views": [ {
"content": "<!DOCTYPE html><html><head>Head</head><body>Body</body></html>",
"name": "my-notebook",
"type": "NOTEBOOK"
} ]
}
若要從 JSON 回應擷取 HTML 筆記本,請下載並執行此 Python 指令。
注意
__DATABRICKS_NOTEBOOK_MODEL
物件中的筆記本本文已編碼。
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
run_id |
INT64 |
執行的正式識別碼。 這是必要欄位。 |
views_to_export |
ViewsToExport | 要匯出的檢視 (程式碼、儀表板或所有)。 預設為 CODE。 |
回覆結構
欄位名稱 | 類型 | 描述 |
---|---|---|
views |
ViewItem 的陣列 | 以 HTML 格式匯出的內容 (每個檢視項目各一個)。 |
執行取消
端點 | HTTP 方法 |
---|---|
2.0/jobs/runs/cancel |
POST |
取消工作執行。 因為執行是以非同步方式取消的,因此當此要求完成時,執行可能仍在執行中。 執行將會很快終止。 如果執行已經在終端機 life_cycle_state
中,則這個方法為 no-op。
此端點會驗證 run_id
參數是否有效,且無效的參數會傳回 HTTP 狀態程式碼 400。
範例
curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/runs/cancel \
--data '{ "run_id": <run-id> }'
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。<run-id>
取代為執行的識別碼,例如123
。
此範例會使用 .netrc 檔案。
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
run_id |
INT64 |
要取消的執行的正式識別碼。 這是必要欄位。 |
執行取消所有
端點 | HTTP 方法 |
---|---|
2.0/jobs/runs/cancel-all |
POST |
取消工作的所有作用中執行。 因為執行是以非同步方式取消的,因此不會防止啟動新的執行。
此端點會驗證 job_id
參數是否有效,且無效的參數會傳回 HTTP 狀態程式碼 400。
範例
curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/runs/cancel-all \
--data '{ "job_id": <job-id> }'
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。<job-id>
取代為工作的識別碼,例如123
。
此範例會使用 .netrc 檔案。
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
要取消所有執行的工作的正式識別碼。 這是必要欄位。 |
執行取得輸出
端點 | HTTP 方法 |
---|---|
2.0/jobs/runs/get-output |
GET |
擷取單一任務執行的輸出和中繼資料。 當筆記本任務透過 dbutils.notebook.exit() 呼叫傳回值時,您可以使用此端點來擷取該值。 Azure Databricks 會限制此 API 只傳回輸出的前 5 MB。 若要傳回較大的結果,您可以將工作結果儲存在雲端儲存體服務中。
此端點會驗證 run_id
參數是否有效,且無效的參數會傳回 HTTP 狀態程式碼 400。
執行會在 60 天後自動移除。 如果您想要參考超過 60 天的時間,您應該在其過期之前,儲存舊的執行結果。 若要使用 UI 匯出,請參閱匯出工作執行結果。 若要使用工作 API 匯出,請參閱執行匯出。
範例
要求
curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/jobs/runs/get-output?run_id=<run-id>' \
| jq .
或:
curl --netrc --get \
https://<databricks-instance>/api/2.0/jobs/runs/get-output \
--data run_id=<run-id> \
| jq .
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。<run-id>
取代為執行的識別碼,例如123
。
回應
{
"metadata": {
"job_id": 1,
"run_id": 452,
"number_in_job": 5,
"state": {
"life_cycle_state": "TERMINATED",
"result_state": "SUCCESS",
"state_message": ""
},
"task": {
"notebook_task": {
"notebook_path": "/Users/someone@example.com/my-notebook"
}
},
"cluster_spec": {
"existing_cluster_id": "1201-my-cluster"
},
"cluster_instance": {
"cluster_id": "1201-my-cluster",
"spark_context_id": "1102398-spark-context-id"
},
"overriding_parameters": {
"jar_params": ["param1", "param2"]
},
"start_time": 1457570074236,
"setup_duration": 259754,
"execution_duration": 3589020,
"cleanup_duration": 31038,
"run_duration": 3879812,
"trigger": "PERIODIC"
},
"notebook_output": {
"result": "the maybe truncated string passed to dbutils.notebook.exit()"
}
}
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
run_id |
INT64 |
執行的正式識別碼。 對於具有多個任務的工作,這是任務執行的 run_id 。 請參閱執行取得輸出。 這是必要欄位。 |
回覆結構
欄位名稱 | 類型 | 描述 |
---|---|---|
notebook_output 或 error |
NotebookOutput 或 STRING |
如果是 notebook_output,則為筆記本任務的輸出,如果有的話。 無需呼叫即可終止的筆記本任務 (成功或失敗)dbutils.notebook.exit() 會被視為具有空白輸出。 將會設定此欄位,但其結果值會是空白。如果發生錯誤,則會發出錯誤訊息,指出輸出無法使用的原因。 訊息為非結構化,且其確切的格式可能會有變更。 |
metadata |
執行 | 執行的所有詳細資料,但輸出除外。 |
執行刪除
端點 | HTTP 方法 |
---|---|
2.0/jobs/runs/delete |
POST |
刪除非作用中的執行。 如果執行為作用中,則會傳回錯誤。
範例
curl --netrc --request POST \
https://<databricks-instance>/api/2.0/jobs/runs/delete \
--data '{ "run_id": <run-id> }'
將:
<databricks-instance>
取代為 Azure Databricks 工作區執行個體名稱,例如adb-1234567890123456.7.azuredatabricks.net
。<run-id>
取代為執行的識別碼,例如123
。
此範例會使用 .netrc 檔案。
要求結構
欄位名稱 | 類型 | 描述 |
---|---|---|
run_id |
INT64 |
要為其擷取中繼資料的執行的正式識別碼。 |
資料結構
本節內容:
- ABFSSStorageInfo
- 自動縮放
- AzureAttributes
- AzureAvailability
- ClusterInstance
- ClusterLogConf
- ClusterSpec
- ClusterTag
- CronSchedule
- DbfsStorageInfo
- FileStorageInfo
- InitScriptInfo
- 工作 (Job)
- JobEmailNotifications
- JobNotificationSettings
- JobSettings
- JobTask
- JobsHealthRule
- JobsHealthRules
- 程式庫
- MavenLibrary
- NewCluster
- NotebookOutput
- NotebookTask
- ParamPair
- PipelineTask
- PythonPyPiLibrary
- RCranLibrary
- 執行
- RunJobTask
- RunLifeCycleState
- RunParameters
- RunResultState
- RunState
- SparkConfPair
- SparkEnvPair
- SparkJarTask
- SparkPythonTask
- SparkSubmitTask
- TriggerType
- ViewItem
- ViewType
- ViewsToExport
- Webhook
- WebhookNotifications
- WorkspaceStorageInfo
ABFSSStorageInfo
Azure Data Lake Storage (ADLS) 儲存體資訊。
欄位名稱 | 類型 | 描述 |
---|---|---|
destination |
STRING |
檔案目的地。 範例: abfss://... |
自動縮放
定義叢集背景工作角色的最小和最大數目的範圍。
欄位名稱 | 類型 | 描述 |
---|---|---|
min_workers |
INT32 |
叢集在使用量過低時可縮減到的背景工作角色最小數目。 這也是叢集建立後將擁有的初始背景工作角色數目。 |
max_workers |
INT32 |
叢集在多載時可擴增到的背景工作角色最大數目。 max_workers 必須大於 min_workers。 |
AzureAttributes
建立 Azure 相關叢集時設定的屬性。
欄位名稱 | 類型 | 描述 |
---|---|---|
first_on_demand |
INT32 |
叢集的第一個 first_on_demand 節點將會放置在隨選執行個體上。 此值必須大於 0,否則叢集建立驗證便會失敗。 如果此值大於或等於目前的叢集大小,所有節點都會放置在隨選執行個體上。 如果此值小於目前的叢集大小,則 first_on_demand 節點會放置在隨選執行個體上,而其餘的節點會放置在可用性執行個體上。 此值不會影響叢集大小,而且無法在叢集的存留期內變動。 |
availability |
AzureAvailability | 用於 first_on_demand 節點之後的所有後續節點的可用性類型。 |
spot_bid_max_price |
DOUBLE |
用於 Azure 現成執行個體的最高出價價格。 您可以將此值設定為大於或等於目前的現成價格。 您也可以將此設定為 -1 (預設值),指定無法根據價格收回執行個體。 執行個體的價格將是現成執行個體的目前價格,或是標準執行個體的價格。 您可以在 Azure 入口網站中檢視歷程記錄價格和收回費率。 |
AzureAvailability
Azure 執行個體可用性類型行為。
類型 | 描述 |
---|---|
SPOT_AZURE |
使用現成執行個體。 |
ON_DEMAND_AZURE |
使用隨選執行個體。 |
SPOT_WITH_FALLBACK_AZURE |
最好使用現成執行個體,但如果無法取得現成執行個體,請回復為隨選執行個體 (例如,如果 Azure 現成價格太高或超出配額)。 不會套用至集區可用性。 |
ClusterInstance
執行使用的叢集和 Spark 內容的識別碼。 這兩個值可一起識別所有時間的執行內容。
欄位名稱 | 類型 | 描述 |
---|---|---|
cluster_id |
STRING |
執行使用的叢集的正式識別碼。 此欄位一律可用於在現有叢集上執行。 針對新叢集上的執行,建立叢集之後就會變成可用。 此值可用來藉由瀏覽至 /#setting/sparkui/$cluster_id/driver-logs 來檢視記錄。 執行完成之後,記錄將繼續可供使用。如果識別碼尚無法使用,則回應不會包含此欄位。 |
spark_context_id |
STRING |
執行使用的 Spark 內容的正式識別碼。 執行開始執行之後,即會填入此欄位。 此值可用來藉由瀏覽至 /#setting/sparkui/$cluster_id/$spark_context_id 來檢視 Spark UI。 執行完成之後,Spark UI 將繼續可供使用。如果識別碼尚無法使用,則回應不會包含此欄位。 |
ClusterLogConf
叢集記錄檔的路徑。
欄位名稱 | 類型 | 描述 |
---|---|---|
dbfs |
DbfsStorageInfo | 叢集記錄檔的 DBFS 位置。 必須提供目的地。 例如,{ "dbfs" : { "destination" : "dbfs:/home/cluster_log" } } |
ClusterSpec
重要
- 當您在新工作叢集上執行工作時,工作會被視為工作計算 (自動化) 工作負載,且受限於工作計算價格。
- 當您在現有的全用途叢集上執行工作時,其會被視為全用途計算 (互動式) 工作負載,且受限於全用途計算價格。
欄位名稱 | 類型 | 描述 |
---|---|---|
existing_cluster_id 或 new_cluster |
STRING 或 NewCluster |
如果是 existing_cluster_id,則為將用於該工作的所有執行的現有叢集的 ID。 在現有叢集上執行工作時,如果叢集停止回應,您可能需要手動重新啟動。 我們建議在新的叢集上執行工作,以提高可靠性。 如果是 new_cluster,則為將針對每個執行建立的叢集描述。 如果指定 PipelineTask,則此欄位可為空白。 |
libraries |
程式庫的陣列 | 要在負責執行工作的叢集上,即將安裝的程式庫的選用清單。 預設值是空白清單。 |
ClusterTag
叢集標籤定義。
類型 | 描述 |
---|---|
STRING |
標籤的索引鍵。 索引鍵必須: - 介於 1 到 512 個字元之間 - 不能包含下列任一字元: <>%*&+?\\/ - 開頭不是 azure 、microsoft 或 windows |
STRING |
標籤的值。 值長度必須小於或等於 256 個 UTF-8 字元。 |
CronSchedule
欄位名稱 | 類型 | 描述 |
---|---|---|
quartz_cron_expression |
STRING |
Cron 運算式,使用能描述工作排程的 Quartz 語法。 如需詳細資料,請參閱 Cron 觸發程序。 這是必要欄位。 |
timezone_id |
STRING |
JAVA 時區標識碼。 將會依照此時區解決工作排程。 如需詳細資訊,請參閱 JAVA 時區。 這是必要欄位。 |
pause_status |
STRING |
指出此排程是否已暫停。 要麼「暫停」,要麼「取消暫停」。 |
DbfsStorageInfo
DBFS 儲存體資訊。
欄位名稱 | 類型 | 描述 |
---|---|---|
destination |
STRING |
DBFS 目的地。 範例: dbfs:/my/path |
FileStorageInfo
檔案儲存空間資訊。
注意
此位置類型僅適用於使用 Databricks Container Services 設定的叢集。
欄位名稱 | 類型 | 描述 |
---|---|---|
destination |
STRING |
檔案目的地。 範例: file:/my/file.sh |
InitScriptInfo
init 指令的路徑。
如需有關將 init 指令與 Databricks Container Services 搭配使用的指示,請參閱使用 init 指令碼。
注意
此檔案儲存空間類型 (欄位名稱:file
) 僅適用於使用 Databricks Container Services 設定的叢集。 請參閱 FileStorageInfo。
欄位名稱 | 類型 | 描述 |
---|---|---|
workspace 或dbfs (已取代)OR abfss |
WorkspaceStorageInfo DbfsStorageInfo (已取代) ABFSSStorageInfo |
init 指令的工作區位置。 必須提供目的地。 例如,{ "workspace" : { "destination" : "/Users/someone@domain.com/init_script.sh" } } (已取代) init 指令的 DBFS 位置。 必須提供目的地。 例如, { "dbfs" : { "destination" : "dbfs:/home/init_script" } } init 指令的 Azure Data Lake Storage (ADLS) 位置。 必須提供目的地。 例如, { "abfss": { "destination" : "abfss://..." } } |
工作
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
此工作的正式識別碼。 |
creator_user_name |
STRING |
建立者使用者名稱。 如果使用者已刪除,此欄位將不會包含在回應中。 |
run_as |
STRING |
工作執行時使用的使用者名稱。 run_as 是以目前的工作設定為基礎,如果停用工作存取控制,則會設定為工作的建立者,如果已啟用工作存取控制,則會設定為 is_owner 權限。 |
settings |
JobSettings | 此工作及其所有執行的設定。 可以使用 resetJob 方法來更新這些設定。 |
created_time |
INT64 |
建立此工作的時間,以 Epoch 毫秒為單位 (自 1970 年 1 月 1 日 (UTC) 起的毫秒數)。 |
JobEmailNotifications
重要
on_start、on_success 和 on_failure 欄位只接受拉丁文字元 (ASCII 字元集)。 使用非 ASCII 字元將會傳回錯誤。 無效、非 ASCII 字元的範例包括中文、日文漢字和表情圖示。
欄位名稱 | 類型 | 描述 |
---|---|---|
on_start |
STRING 的陣列 |
執行開始時要通知的電子郵件地址清單。 如果未在工作建立、重設或更新上指定,清單會是空的,而且不會傳送通知。 |
on_success |
STRING 的陣列 |
執行成功完成時要通知的電子郵件地址清單。 如果執行以 TERMINATED life_cycle_state 和 SUCCESSFUL result_state 結束,則視為已成功完成。 如果未在工作建立、重設或更新上指定,清單會是空的,而且不會傳送通知。 |
on_failure |
STRING 的陣列 |
執行未成功完成時要通知的電子郵件地址清單。 如果執行以下列狀態結束,則視為未成功完成:INTERNAL_ERROR life_cycle_state 或 SKIPPED 、FAILED 或 TIMED_OUT result_state。 如果未在工作建立、重設或更新上指定,清單會是空的,而且不會傳送通知。 |
on_duration_warning_threshold_exceeded |
STRING 的陣列 |
當執行持續時間超過 health 欄位中 RUN_DURATION_SECONDS 計量指定的閾值時,要通知的電子郵件地址清單。 如果未在工作的 health 欄位中指定 RUN_DURATION_SECONDS 計量的規則,則不會傳送通知。 |
no_alert_for_skipped_runs |
BOOL |
如果為 true,則不會在略過執行時傳送電子郵件給 on_failure 中指定的收件者。 |
欄位名稱 | 類型 | 描述 |
---|---|---|
on_start |
Webhook 的陣列 | 選用的系統目的地清單,可在執行開始時收到通知。 如果未在工作建立、重設或更新上指定,清單會是空的,而且不會傳送通知。 最多可為 on_start 屬性指定 3 個目的地。 |
on_success |
Webhook 的陣列 | 選用的系統目的地清單,可在執行成功完成時收到通知。 如果執行以 TERMINATED life_cycle_state 和 SUCCESSFUL result_state 結束,則視為已成功完成。 如果未在工作建立、重設或更新上指定,清單會是空的,而且不會傳送通知。 最多可為 on_success 屬性指定 3 個目的地。 |
on_failure |
Webhook 的陣列 | 選用的系統目的地清單,可在執行未成功完成時收到通知。 如果執行以下列狀態結束,則視為未成功完成:INTERNAL_ERROR life_cycle_state 或 SKIPPED 、FAILED 或 TIMED_OUT result_state。 如果未在工作建立、重設或更新上指定,清單會是空的,而且不會傳送通知。 最多可為 on_failure 屬性指定 3 個目的地。 |
on_duration_warning_threshold_exceeded |
Webhook 的陣列 | 當執行持續時間超過 health 欄位中 RUN_DURATION_SECONDS 計量指定的閾值時,要通知的電子郵件地址的選用清單。 最多可為 on_duration_warning_threshold_exceeded 屬性指定 3 個目的地。 |
JobNotificationSettings
欄位名稱 | 類型 | 描述 |
---|---|---|
no_alert_for_skipped_runs |
BOOL |
如果為 true,則不會在略過執行時傳送通知給 on_failure 中指定的收件者。 |
no_alert_for_canceled_runs |
BOOL |
如果為 true,則不會在取消執行時傳送通知給 on_failure 中指定的收件者。 |
alert_on_last_attempt |
BOOL |
如果為 true,則不會針對重試執行的傳送通知給 on_start 中指定的收件者,亦不會在最後一次重試執行之前傳送通知給 on_failure 中指定的收件者。 |
JobSettings
重要
- 當您在新工作叢集上執行工作時,工作會被視為工作計算 (自動化) 工作負載,且受限於工作計算價格。
- 當您在現有的全用途叢集上執行工作時,其會被視為全用途計算 (互動式) 工作負載,且受限於全用途計算價格。
工作的設定。 可以使用 resetJob
方法來更新這些設定。
欄位名稱 | 類型 | 描述 |
---|---|---|
existing_cluster_id 或 new_cluster |
STRING 或 NewCluster |
如果是 existing_cluster_id,則為將用於該工作的所有執行的現有叢集的 ID。 在現有叢集上執行工作時,如果叢集停止回應,您可能需要手動重新啟動。 我們建議在新的叢集上執行工作,以提高可靠性。 如果是 new_cluster,則為將針對每個執行建立的叢集描述。 如果指定 PipelineTask,則此欄位可為空白。 |
notebook_task 或 spark_jar_task 或spark_python_task 或 spark_submit_task 或pipeline_task 或 run_job_task |
NotebookTask 或 SparkJarTask 或 SparkPythonTask 或 SparkSubmitTask 或 PipelineTask 或 RunJobTask | 如果是 notebook_task,則表示此工作應該執行筆記本。 此欄位可能不會與 spark_jar_task 一起指定。 如果是 spark_jar_task,則表示此工作應該執行 JAR。 如果是 spark_python_task,則表示此工作應該執行 Python 檔案。 如果是 spark_submit_task,則表示 Spark 提交指令應該啟動此工作。 如果是 pipeline_task,則表示此工作應該執行 Delta Live Tables 管線。 如果是 run_job_task,則表示此工作應該執行另一個工作。 |
name |
STRING |
工作的選用名稱。 預設值是 Untitled 。 |
libraries |
程式庫的陣列 | 要在負責執行工作的叢集上,即將安裝的程式庫的選用清單。 預設值是空白清單。 |
email_notifications |
JobEmailNotifications | 一組選用的電子郵件地址,將在此工作的執行開始或完成時以及刪除此工作時收到通知。 預設行為是不要傳送任何電子郵件。 |
webhook_notifications |
WebhookNotifications | 一組選用的系統目的地,在此工作的執行開始、完成或失敗時收到通知。 |
notification_settings |
JobNotificationSettings | 將通知傳送至此工作的每個 email_notifications 和 webhook_notifications 時所使用的選用通知設定。 |
timeout_seconds |
INT32 |
選用逾時,可套用至此工作的每個執行。 預設行為是沒有逾時。 |
max_retries |
INT32 |
重試失敗執行的選用次數上限。 如果執行完成狀態如下,則視為失敗:FAILED result_state 或INTERNAL_ERROR life_cycle_state . 值 -1 表示無限期重試,而值 0 表示永不重試。 預設行為是永不重試。 |
min_retry_interval_millis |
INT32 |
嘗試之間的選用最小重試間隔,以毫秒為單位。 預設行為是立即重試失敗執行。 |
retry_on_timeout |
BOOL |
選用原則,指定是否要在工作逾時時重試。預設行為是逾時時不重試。 |
schedule |
CronSchedule | 此工作的選用定期排程。 預設行為是,在工作 UI 中按下 [立即執行] 或將 API 要求傳送至以下位置時,以在觸發時僅執行工作:runNow . |
max_concurrent_runs |
INT32 |
工作並行執行的選用允許數目上限。 如果您想要能夠同時執行相同工作的多個執行,請設定此值。 例如,如果您頻繁觸發工作,並且想要允許連續執行彼此重疊,或是如果您想要觸發輸入參數不同的多個執行,這非常有用。 此設定僅會影響新的執行。 例如,假設工作的並行存取是 4,而且有 4 個並行作用中的執行。 然後,將並行設定為 3 不會終止任何作用中的執行。 不過,從那時起,除非有少於 3 個作用中的執行,否則將會略過新的執行。 此值不能超過 1000。 將此值設定為 0 會導致略過所有新的執行。 預設行為是只允許 1 個並行執行。 |
health |
JobsHealthRules | 一組針對工作定義的選用的健康情況規則。 |
JobTask
欄位名稱 | 類型 | 描述 |
---|---|---|
notebook_task 或 spark_jar_task 或spark_python_task 或 spark_submit_task 或pipeline_task 或 run_job_task |
NotebookTask 或 SparkJarTask 或 SparkPythonTask 或 SparkSubmitTask 或 PipelineTask 或 RunJobTask | 如果是 notebook_task,則表示此工作應該執行筆記本。 此欄位可能不會與 spark_jar_task 一起指定。 如果是 spark_jar_task,則表示此工作應該執行 JAR。 如果是 spark_python_task,則表示此工作應該執行 Python 檔案。 如果是 spark_submit_task,則表示 Spark 提交指令應該啟動此工作。 如果是 pipeline_task,則表示此工作應該執行 Delta Live Tables 管線。 如果是 run_job_task,則表示此工作應該執行另一個工作。 |
JobsHealthRule
欄位名稱 | 類型 | 描述 |
---|---|---|
metric |
STRING |
指定正在針對特定健康情況規則評估的健康情況計量。 有效的值為 RUN_DURATION_SECONDS 。 |
operator |
STRING |
指定用來比較健康情況計量值的運算元與指定的閾值。 有效的值為 GREATER_THAN 。 |
value |
INT32 |
指定健康情況計量應符合的閾值,以符合健康情況規則。 |
JobsHealthRules
欄位名稱 | 類型 | 描述 |
---|---|---|
rules |
JobsHealthRule 的陣列 | 一組可針對工作定義的選用的健康情況規則。 |
程式庫
欄位名稱 | 類型 | 描述 |
---|---|---|
jar 或 egg 或 whl 或pypi 或 maven 或 cran |
STRING 或 STRING 或 STRING 或 PythonPyPiLibrary 或 MavenLibrary 或 RCranLibrary |
如果是 jar,則為要安裝的 JAR 的 URI。 支援 DBFS 和 ADLS (abfss ) URI。 例如,{ "jar": "dbfs:/mnt/databricks/library.jar" } 或{ "jar": "abfss://<container-path>/library.jar" } . 如果使用 ADLS,請確定叢集具有程式庫的讀取存取權。如果是 egg,則為要安裝的 egg 的 URI。 支援 DBFS 和 ADLS URI。 例如, { "egg": "dbfs:/my/egg" } 或{ "egg": "abfss://<container-path>/egg" } .如果是 whl,則為要安裝的 wheel 或壓縮 wheels 的 URI。 支援 DBFS 和 ADLS URI。 例如,{ "whl": "dbfs:/my/whl" } 或{ "whl": "abfss://<container-path>/whl" } . 如果使用 ADLS,請確定叢集具有程式庫的讀取存取權。 此外,wheel 檔案名稱也需要使用正確的慣例。 如果要安裝壓縮的 wheels ,檔案名稱尾碼應該是 .wheelhouse.zip 。如果是 pypi,則為要安裝的 PyPI 程式庫規格。 指定 repo 欄位是選擇性的,如果未指定,則會使用預設 pip 索引子。 例如:{ "package": "simplejson", "repo": "https://my-repo.com" } 如果是 maven,則為要安裝的 Maven 程式庫規格。 例如: { "coordinates": "org.jsoup:jsoup:1.7.2" } 如果是 cran,則為要安裝的 CRAN 程式庫規格。 |
MavenLibrary
欄位名稱 | 類型 | 描述 |
---|---|---|
coordinates |
STRING |
Gradle 樣式的 Maven 座標。 例如: org.jsoup:jsoup:1.7.2 。 這是必要欄位。 |
repo |
STRING |
可用於安裝 Maven 套件的 Maven 存放庫。 如果省略,則會搜尋 Maven 中央存放庫和 Spark 套件。 |
exclusions |
STRING 的陣列 |
要排除的相依性清單。 例如: ["slf4j:slf4j", "*:hadoop-client"] 。Maven 相依性排除項目:https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html。 |
NewCluster
欄位名稱 | 類型 | 描述 |
---|---|---|
num_workers 或 autoscale |
INT32 或自動縮放 |
如果是 num_workers,此叢集應有的背景工作角色節點數目。 一個叢集有一個 Spark 驅動程式、num_workers 個執行程式、總共 num_workers + 1 個 Spark 節點。 注意:讀取叢集的屬性時,此欄位會反映所需的背景工作角色數目,而不是目前實際的背景工作角色數目。 例如,如果叢集從 5 個背景工作角色調整為 10 個背景工作角色,則此欄位會立即更新,以反映 10 個背景工作角色的目標大小,而列於 spark_info 中的背景工作角色會隨著佈建的新節點而逐漸從 5 個增加到 10 個。 如果是自動縮放,則需要參數,才能根據負載自動擴大和縮小叢集。 |
spark_version |
STRING |
叢集的 Spark 版本。 您可以使用 GET 2.0/clusters/spark-versions 呼叫來擷取可用的 Spark 版本清單。 這是必要欄位。 |
spark_conf |
SparkConfPair | 包含一組選用的、使用者指定的 Spark 設定索引鍵/值組的物件。 您也可以透過以下項目將額外的 JVM 選項字串傳入驅動程式和執行程式: 分別是 spark.driver.extraJavaOptions 和 spark.executor.extraJavaOptions 。範例 Spark confs: {"spark.speculation": true, "spark.streaming.ui.retainedBatches": 5} 或{"spark.driver.extraJavaOptions": "-verbose:gc -XX:+PrintGCDetails"} |
node_type_id |
STRING |
此欄位透過單一值,將對此叢集中每個 Spark 節點可使用的資源編碼。 例如,Spark 節點可以佈建,並針對記憶體或計算密集型工作負載最佳化。可以使用 GET 2.0/clusters/list-node-types 呼叫來擷取可用的節點類型清單。 需要此欄位、instance_pool_id 欄位或指定節點類型識別碼或執行個體集區識別碼的叢集原則。 |
driver_node_type_id |
STRING |
Spark 驅動程式的節點類型。 此欄位是選擇性的;如果取消設定,驅動程式節點類型會設定為與上面定義 node_type_id 相同的值。 |
custom_tags |
ClusterTag | 包含叢集資源的一組標籤的物件。 除了 default_tags 之外,Databricks 會使用這些標籤來標記所有叢集資源 (例如 VM)。 注意: - 舊版節點類型不支援標籤,例如計算最佳化和記憶體最佳化 - Databricks 最多允許 45 個自訂標籤 |
cluster_log_conf |
ClusterLogConf | 將 Spark 記錄傳遞至長期儲存體目的地的組態。 一個叢集只能指定一個目的地。 如果已提供 conf,則每個 5 mins 都會將記錄傳遞至目的地。 驅動程式記錄的目的地為 <destination>/<cluster-id>/driver ,而執行程式記錄的目的地為 <destination>/<cluster-id>/executor 。 |
init_scripts |
InitScriptInfo 的陣列 | 用於儲存 init 指令的組態。 您可以指定任意數目的指令。 指令碼會依提供的順序循序執行。 如果已指定 cluster_log_conf ,則會將 init 指令記錄傳送至<destination>/<cluster-id>/init_scripts . |
spark_env_vars |
SparkEnvPair | 包含一組選用的、使用者指定的環境變數索引鍵/值組的物件。 表單的索引鍵/值組 (X,Y) 會匯出為 (即export X='Y' ),同時會啟動驅動程式和背景工作角色。若要指定一組額外的 SPARK_DAEMON_JAVA_OPTS ,建議您將它們附加至 $SPARK_DAEMON_JAVA_OPTS ,如下列範例所示。 這可確保也包含所有預設 Databricks 受控環境變數。範例 Spark 環境變數: {"SPARK_WORKER_MEMORY": "28000m", "SPARK_LOCAL_DIRS": "/local_disk0"} 或{"SPARK_DAEMON_JAVA_OPTS": "$SPARK_DAEMON_JAVA_OPTS -Dspark.shuffle.service.enabled=true"} |
enable_elastic_disk |
BOOL |
自動調整本機存放區:啟用時,當 Spark 背景工作角色執行所在的磁碟空間不足時,此叢集會動態取得額外的磁碟空間。 如需詳細資料,請參閱啟用自動調整本機存放區。 |
driver_instance_pool_id |
STRING |
要用於驅動程式節點之執行個體集區的選用識別碼。 您還必須指定 instance_pool_id 。 如需詳細資料,請參閱執行個體集區 API。 |
instance_pool_id |
STRING |
要用於叢集節點的執行個體集區的選用識別碼。 如果 driver_instance_pool_id 存在,instance_pool_id 僅可用於背景工作角色節點。 否則,它會同時用於驅動程式節點和背景工作角色節點。 如需詳細資料,請參閱執行個體集區 API。 |
NotebookOutput
欄位名稱 | 類型 | 描述 |
---|---|---|
result |
STRING |
傳遞至 dbutils.notebook.exit() 的值。 Azure Databricks 會限制此 API 只傳回值的前 1 MB。 若為較大的結果,您的工作可以將結果儲存在雲端儲存體服務中。 如果從未呼叫 dbutils.notebook.exit() ,此欄位將會不存在。 |
truncated |
BOOLEAN |
結果是否被截斷。 |
NotebookTask
所有輸出儲存格的大小均以 8MB 為限。 如果儲存格的輸出的大小較大,則將會取消執行的剩餘部分,且該執行會被標示為失敗。 在這種情況下,可能也會遺漏其他儲存格的某些內容輸出。
如果您需要尋找超出限制的儲存格,請針對通用叢集執行筆記本,並使用此筆記本自動儲存技術。
欄位名稱 | 類型 | 描述 |
---|---|---|
notebook_path |
STRING |
要在 Azure Databricks 工作區中執行的筆記本的絕對路徑。 此路徑必須以斜線開頭。 這是必要欄位。 |
revision_timestamp |
LONG |
筆記本修訂的時間戳記。 |
base_parameters |
ParamPair 的對應 | 要用於此工作的每個執行的基本參數。 如果執行是由具有指定參數的 run-now 呼叫所起始的,則會合併兩個參數對應。 如果在 base_parameters 和 run-now 中指定了相同的索引鍵,則會使用來自 run-now 的值。使用什麼是動態值參考?來設定包含工作執行相關資訊的參數。 如果筆記本採用未在工作的 base_parameters 或 run-now 覆寫參數中指定的參數,則系統會使用筆記本的預設值。使用 dbutils.widgets.get 在筆記本中擷取這些參數。 |
ParamPair
執行筆記本任務的工作的名稱型參數。
重要
此資料結構中的欄位只接受拉丁文字元 (ASCII 字元集)。 使用非 ASCII 字元將會傳回錯誤。 無效、非 ASCII 字元的範例包括中文、日文漢字和表情圖示。
類型 | 描述 |
---|---|
STRING |
參數名稱。 傳遞至 dbutils.widgets.get 以擷取值。 |
STRING |
參數值。 |
PipelineTask
欄位名稱 | 類型 | 描述 |
---|---|---|
pipeline_id |
STRING |
要執行的 Delta Live Tables 管線任務的全名。 |
PythonPyPiLibrary
欄位名稱 | 類型 | 描述 |
---|---|---|
package |
STRING |
要安裝的 PyPI 套件的名稱。 另外,還支援選用的確切版本規格。 範例:simplejson 和 simplejson==3.8.0 。 這是必要欄位。 |
repo |
STRING |
可找到套件的存放庫。 如果未指定,則會使用預設的 pip 索引子。 |
RCranLibrary
欄位名稱 | 類型 | 描述 |
---|---|---|
package |
STRING |
要安裝的 CRAN 套件的名稱。 這是必要欄位。 |
repo |
STRING |
可找到套件的存放庫。 如果未指定,則會使用預設的 CRAN 存放庫。 |
Run
有關執行的所有資訊,除了其輸出之外。 您可以使用 getRunOutput
方法個別擷取輸出。
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT64 |
包含此執行的工作的正式識別碼。 |
run_id |
INT64 |
執行的正式識別碼。 此識別碼在所有工作的所有執行中都是唯一的。 |
creator_user_name |
STRING |
建立者使用者名稱。 如果使用者已刪除,此欄位將不會包含在回應中。 |
number_in_job |
INT64 |
此執行在工作的所有執行中的序號。 此值從 1 開始。 |
original_attempt_run_id |
INT64 |
如果此執行是先前執行嘗試的重試,則此欄位會包含原始嘗試的 run_id;否則,其會與 run_id 相同。 |
state |
RunState | 執行的結果和生命週期狀態。 |
schedule |
CronSchedule | 如果定期排程者觸發此排程,就會觸發此執行的 Cron 排程。 |
task |
JobTask | 執行所執行的任務 (如果有的話)。 |
cluster_spec |
ClusterSpec | 建立此執行時工作叢集規格的快照。 |
cluster_instance |
ClusterInstance | 用於此執行的叢集。 如果指定執行使用新的叢集,則一旦工作服務要求執行叢集,就會設定此欄位。 |
overriding_parameters |
RunParameters | 用於此執行的參數。 |
start_time |
INT64 |
開始此執行的時間,以 Epoch 毫秒為單位 (自 1970 年 1 月 1 日 (UTC) 起的毫秒數)。 這可能不是工作任務開始執行的時間,例如,如果工作排定在新叢集上執行,這就是發出叢集建立呼叫的時間。 |
setup_duration |
INT64 |
設定叢集所需的時間,以毫秒為單位。 對於在新叢集上執行的執行,這是叢集建立時間;對於在現有叢集上執行的執行,此時間應該很短。 |
execution_duration |
INT64 |
執行 JAR 或筆記本中命令所需的時間 (以毫秒為單位),直到它們完成、失敗、逾時、取消,或遇到了未預期的錯誤。 |
cleanup_duration |
INT64 |
終止叢集並清理任何關聯的成品所需的時間,以毫秒為單位。 執行的總持續時間是 setup_duration、execution_duration 和cleanup_duration 的總和。 |
end_time |
INT64 |
結束此執行的時間,以 Epoch 毫秒為單位 (自 1970 年 1 月 1 日 (UTC) 起的毫秒數)。 如果工作仍在執行中,此欄位將會設定為 0。 |
trigger |
TriggerType | 引發此執行的觸發程序的類型。 |
run_name |
STRING |
執行的選用名稱。 預設值是 Untitled 。 允許的長度上限是 4096 個位元組 (UTF-8 編碼)。 |
run_page_url |
STRING |
執行詳細資料頁面的 URL。 |
run_type |
STRING |
執行的類型。 - JOB_RUN - 正常工作執行。 使用立即執行建立的執行。- WORKFLOW_RUN - 工作流程執行。 使用 dbutils.notebook.run 建立的執行。- SUBMIT_RUN - 提交執行。 使用立即執行建立的執行。 |
attempt_number |
INT32 |
觸發工作執行的此執行嘗試的序號。 執行的初始嘗試的 attempt_number 為 0。 如果初始執行嘗試失敗,且工作有重試原則 (max_retries > 0),則會使用原始嘗試的標識碼 original_attempt_run_id 和遞增 attempt_number 來建立後續執行。 僅重試執行,直到執行成功且最大值 attempt_number 與工作的 max_retries 值相同為止。 |
RunJobTask
欄位名稱 | 類型 | 描述 |
---|---|---|
job_id |
INT32 |
要執行的工作的唯一識別碼。 這是必要欄位。 |
RunLifeCycleState
執行的生命週期狀態。 允許狀態轉換為:
QUEUED
->PENDING
PENDING
->RUNNING
->TERMINATING
->TERMINATED
PENDING
->SKIPPED
PENDING
->INTERNAL_ERROR
RUNNING
->INTERNAL_ERROR
TERMINATING
->INTERNAL_ERROR
State | 描述 |
---|---|
QUEUED |
執行已觸發,但已排入佇列,因為其已觸達下列其中一個限制: - 工作區中的並行作用中執行上限。 - 工作區中的並行 Run Job 任務執行上限。工作的並行執行上限。 工作或執行必須先啟用佇列,才能觸達此狀態。 |
PENDING |
執行已觸發。 如果已觸達設定的工作並行執行上限,則執行會立即轉換為 SKIPPED 狀態,而無需準備任何資源。 否則,叢集的準備和執行正在進行中。 |
RUNNING |
正在執行此執行的任務。 |
TERMINATING |
此執行的任務已完成,而且正在清理叢集和執行內容。 |
TERMINATED |
此執行的任務已完成,而且已清理叢集和執行內容。 此狀態為終端機。 |
SKIPPED |
此執行已中止,因為先前的相同工作執行已作用中。 此狀態為終端機。 |
INTERNAL_ERROR |
指出工作服務失敗的例外狀態,例如長時間的網路失敗。 如果新叢集上的執行以 INTERNAL_ERROR 狀態結束,則工作服務會盡快終止叢集。 此狀態為終端機。 |
RunParameters
本次執行的參數。 根據工作任務的類型,應在 run-now
要求中僅指定 jar_params、python_params
或 notebook_params 中的一個。
使用 Spark JAR 任務或 Python 任務的工作會取得位置型參數清單,而具有筆記本任務的工作會採用索引鍵值對應。
欄位名稱 | 類型 | 描述 |
---|---|---|
jar_params |
STRING 的陣列 |
具有 Spark JAR 任務的工作的參數清單,例如 "jar_params": ["john doe", "35"] 。 參數會用來叫用 Spark JAR 任務中指定的主要類別的 main 函式。 如果未在 run-now 上指定,則會預設為空白清單。 jar_params 不會與 notebook_params 一起指定。 此欄位的 JSON 表示法 (即 {"jar_params":["john doe","35"]} ) 不能超過 10,000 個位元組。使用什麼是動態值參考?來設定包含工作執行相關資訊的參數。 |
notebook_params |
ParamPair 的對應 | 具有筆記本任務的工作從索引鍵到值的對應,例如"notebook_params": {"name": "john doe", "age": "35"} . 對應會傳遞至筆記本,並可透過 dbutils.widgets.get 函式存取。如果未在 run-now 上指定,則觸發執行會使用工作的基本參數。notebook_params 不會與 jar_params 一起指定。 使用什麼是動態值參考?來設定包含工作執行相關資訊的參數。 此欄位的 JSON 表示法 (即 {"notebook_params":{"name":"john doe","age":"35"}} ) 不能超過 10,000 個位元組。 |
python_params |
STRING 的陣列 |
具有 Python 任務的工作的參數清單,例如 "python_params": ["john doe", "35"] 。 這些參數會作為命令列參數傳遞至 Python 檔案。 如果在 run-now 上指定,則會覆寫工作設定中指定的參數。 此欄位的 JSON 表示法 (即 {"python_params":["john doe","35"]} ) 不能超過 10,000 個位元組。使用什麼是動態值參考?來設定包含工作執行相關資訊的參數。 > [!IMPORTANT] >> 這些參數只接受拉丁文字元 (ASCII 字元集)。 > 使用非 ASCII 字元將會傳回錯誤。 無效、非 ASCII 字元 > 的範例包括中文、日文漢字和表情圖示。 |
spark_submit_params |
STRING 的陣列 |
具有 Spark 提交任務的工作參數清單,例如"spark_submit_params": ["--class", "org.apache.spark.examples.SparkPi"] . 這些參數會作為命令列參數傳遞至 spark-submit 指令。 如果在 run-now 上指定,則會覆寫工作設定中指定的參數。 此欄位的 JSON 表示法 (即 {"python_params":["john doe","35"]} ) 不能超過 10,000 個位元組。使用什麼是動態值參考?來設定包含工作執行相關資訊的參數。 > [!IMPORTANT] >> 這些參數只接受拉丁文字元 (ASCII 字元集)。 > 使用非 ASCII 字元將會傳回錯誤。 無效、非 ASCII 字元 > 的範例包括中文、日文漢字和表情圖示。 |
RunResultState
執行的結果狀態。
- 如果
life_cycle_state
=TERMINATED
:如果執行有任務,則結果保證可供使用,並指出任務的結果。 - 如果
life_cycle_state
=PENDING
、RUNNING
或SKIPPED
,則結果狀態無法使用。 - 如果
life_cycle_state
=TERMINATING
或 lifecyclestate =INTERNAL_ERROR
:如果執行有任務並設法啟動結果狀態,則結果狀態可供使用。
一旦可用,結果狀態就不會變更。
State | 描述 |
---|---|
SUCCESS |
任務已順利完成。 |
FAILED |
任務已完成並附帶錯誤。 |
TIMEDOUT |
觸達逾時之後,執行已停止。 |
CANCELED |
執行已應使用者要求取消。 |
RunState
欄位名稱 | 類型 | 描述 |
---|---|---|
life_cycle_state |
RunLifeCycleState | 執行生命週期中執行的目前位置的描述。 此欄位在回應中始終可供使用。 |
result_state |
RunResultState | 執行的結果狀態。 如果無法使用,則回應不會包含此欄位。 如需 result_state 可用性的詳細資料,請參閱 RunResultState。 |
user_cancelled_or_timedout |
BOOLEAN |
執行是否應執行逾時而被使用者或排程者手動取消。 |
state_message |
STRING |
目前狀態的描述性訊息。 此欄位為非結構化,且其確切的格式可能會有變更。 |
SparkConfPair
Spark 組態索引鍵/值組。
類型 | 描述 |
---|---|
STRING |
組態屬性名稱。 |
STRING |
組態屬性值。 |
SparkEnvPair
Spark 環境變數索引鍵/值組。
重要
在工作叢集中指定環境變數時,此資料結構中的欄位只接受拉丁文字元 (ASCII 字元集)。 使用非 ASCII 字元將會傳回錯誤。 無效、非 ASCII 字元的範例包括中文、日文漢字和表情圖示。
類型 | 描述 |
---|---|
STRING |
環境變數名稱。 |
STRING |
環境變數值。 |
SparkJarTask
欄位名稱 | 類型 | 描述 |
---|---|---|
jar_uri |
STRING |
自 2016 年 4 月起已遭取代。 請改為透過 libraries 欄位提供 jar 。 如需範例,請參閱建立。 |
main_class_name |
STRING |
類別的完整名稱,該類別包含要執行的 main 方法。 這個類別必須包含在提供做為程式庫的 JAR 中。 程式碼應該使用 SparkContext.getOrCreate 來取得 Spark 內容,否則工作的執行將會失敗。 |
parameters |
STRING 的陣列 |
傳遞至 main 方法的參數。 使用什麼是動態值參考?來設定包含工作執行相關資訊的參數。 |
SparkPythonTask
欄位名稱 | 類型 | 描述 |
---|---|---|
python_file |
STRING |
要執行之 Python 檔案的 URI。 支援 DBFS 路徑。 這是必要欄位。 |
parameters |
STRING 的陣列 |
傳遞至 Python 檔案的命令列參數。 使用什麼是動態值參考?來設定包含工作執行相關資訊的參數。 |
SparkSubmitTask
重要
- 您只能在新的叢集上叫用 Spark 提交任務。
- 在 new_cluster 規格中,不支援
libraries
和spark_conf
。 請改用--jars
和--py-files
來新增 JAVA 和 Python 程式庫,並使用--conf
來設定 Spark 組態。 master
、deploy-mode
和executor-cores
是由 Azure Databricks 自動設定的;您無法在參數中指定它們。- 根據預設,Spark 提交工作會使用所有可用記憶體 (不包括 Azure Databricks 服務的保留記憶體)。 您可以將
--driver-memory
和--executor-memory
設定為較小的值,以保留部分空間供堆外使用。 --jars
、--py-files
、--files
引數支援 DBFS 路徑。
例如,假設 JAR 上傳至 DBFS,您可以藉由設定下列參數來執行 SparkPi
。
{
"parameters": [
"--class",
"org.apache.spark.examples.SparkPi",
"dbfs:/path/to/examples.jar",
"10"
]
}
欄位名稱 | 類型 | 描述 |
---|---|---|
parameters |
STRING 的陣列 |
傳遞至 Spark 提交的命令列參數。 使用什麼是動態值參考?來設定包含工作執行相關資訊的參數。 |
TriggerType
這些是可引發執行的觸發程序類型。
類型 | 描述 |
---|---|
PERIODIC |
定期觸發執行的排程,例如 cron 排程者。 |
ONE_TIME |
引發單一執行的一次性觸發程序。 如此一來,您就會透過 UI 或 API 依需求觸發單一執行。 |
RETRY |
指出在重試先前失敗的執行時觸發的執行。 當您要求在發生失敗時重新執行工作時,就會發生這種情況。 |
ViewItem
匯出的內容為 HTML 格式。 例如,如果要匯出的檢視是儀表板,則會針對每個儀表板傳回一個 HTML 字串。
欄位名稱 | 類型 | 描述 |
---|---|---|
content |
STRING |
檢視的內容。 |
name |
STRING |
檢視項目的名稱。 在程式碼檢視的情況下,筆記本的名稱。 在儀表板檢視的情況下,儀表板的名稱。 |
type |
ViewType | 檢視項目的類型。 |
ViewType
類型 | 描述 |
---|---|
NOTEBOOK |
筆記本檢視項目。 |
DASHBOARD |
儀表板檢視項目。 |
ViewsToExport
要匯出的檢視:程式碼、所有儀表板或全部。
類型 | 描述 |
---|---|
CODE |
筆記本的程式碼檢視。 |
DASHBOARDS |
筆記本的所有儀表板檢視。 |
ALL |
筆記本的所有檢視。 |
Webhook
欄位名稱 | 類型 | 描述 |
---|---|---|
id |
STRING |
參考系統通知目的地的識別碼。 這是必要欄位。 |
WebhookNotifications
欄位名稱 | 類型 | 描述 |
---|---|---|
on_start |
Webhook 的陣列 | 選用的系統目的地清單,可在執行開始時收到通知。 如果未在工作建立、重設或更新上指定,清單會是空的,而且不會傳送通知。 最多可為 on_start 屬性指定 3 個目的地。 |
on_success |
Webhook 的陣列 | 選用的系統目的地清單,可在執行成功完成時收到通知。 如果執行以 TERMINATED life_cycle_state 和 SUCCESSFUL result_state 結束,則視為已成功完成。 如果未在工作建立、重設或更新上指定,清單會是空的,而且不會傳送通知。 最多可為 on_success 屬性指定 3 個目的地。 |
on_failure |
Webhook 的陣列 | 選用的系統目的地清單,可在執行未成功完成時收到通知。 如果執行以下列狀態結束,則視為未成功完成:INTERNAL_ERROR life_cycle_state 或 SKIPPED 、FAILED 或 TIMED_OUT result_state 。 如果未在工作建立、重設或更新上指定,清單會是空的,而且不會傳送通知。 最多可為 on_failure 屬性指定 3 個目的地。 |
on_duration_warning_threshold_exceeded |
Webhook 的陣列 | 當執行持續時間超過 health 欄位中 RUN_DURATION_SECONDS 計量指定的閾值時,要通知的電子郵件地址的選用清單。 最多可為 on_duration_warning_threshold_exceeded 屬性指定 3 個目的地。 |
WorkspaceStorageInfo
工作區儲存體資訊。
欄位名稱 | 類型 | 描述 |
---|---|---|
destination |
STRING |
檔案目的地。 範例: /Users/someone@domain.com/init_script.sh |