代码之家  ›  专栏  ›  技术社区  ›  nam

执行Databricks作业的笔记本

  •  0
  • nam  · 技术社区  · 2 年前

    有没有一种api或其他方式可以以编程方式运行Databricks作业。理想情况下,我们希望从笔记本中调用Databricks作业。以下只是给出当前正在运行的作业id,但这不是很有用:

    dbutils.notebook.entry_point.getDbutils().notebook().getContext().currentRunId().toString()
    
    0 回复  |  直到 2 年前
        1
  •  3
  •   Saideep Arikontham    2 年前

    要运行databricks作业,可以使用 Jobs API .我有一份数据砖的工作叫 for_repro 我使用下面从databricks笔记本提供的2种方式运行。

    使用 requests 库:

    • 您可以通过导航到创建访问令牌 Settings -> User settings 在下面 Access token 选项卡,单击生成令牌。
    • 将上面生成的令牌与以下代码一起使用。
    import requests
    import json
    
    my_json = {"job_id": <your_job-id>}    
    
    auth = {"Authorization": "Bearer <your_access-token>"}
    
    response = requests.post('https://<databricks-instance>/api/2.0/jobs/run-now', json = my_json, headers=auth).json()
    print(response)
    

    enter image description here


    • 这个 <databricks-instance> 可以从您的工作区URL中提取上述代码中的值。

    enter image description here


    使用%sh-magic命令脚本:

    • 您还可以在您的python笔记本单元中使用魔术命令%sh来运行databricks作业。
    %sh
    
    curl --netrc --request POST --header "Authorization: Bearer <access_token>" \
    https://<databricks-instance>/api/2.0/jobs/run-now \
    --data '{"job_id": <your job id>}'
    

    enter image description here

    • 以下是我的工作详细信息和运行历史记录,供参考。 enter image description here

    提到 this Microsoft documentation 了解使用 工作API