【问题标题】:Databricks notebook run from Node.js从 Node.js 运行的 Databricks 笔记本
【发布时间】:2020-07-16 12:30:58
【问题描述】:

我正在尝试通过 API 端点 api/2.0/jobs/run-now 调用 Databricks api 以通过其 ID 运行笔记本或作业,但我收到类似 getaddrinfo ENOTFOUND https://adb-<workspace-id>.<random-number>.azuredatabricks.net/api/2.0/jobs/run-now 的错误。但我给出了正确的 url(注意:我根据以下示例中提到的示例将 url 从浏览器地址栏中复制到 .net:Example Job API

下面是我的 Node.JS 代码:

router.get('/triggerJob', (req, res) => {
    var job_payload = {
        "job_id": <Job_ID>
    }

    var options = {
        host: 'https://adb-<workspaceid>.<number>.azuredatabricks.net/api/2.0/jobs/run-now',
        body: JSON.stringify(job_payload),
        method: 'Post',
        headers: { 'Authorization': 'token' }
    }
    var data = '';
    console.log('till here')
    var request = https.request(options, function (result) {
        var body = "";
        result.on('data', function (data) {
            console.log('data came');
            body += data;
        });
        result.on('end', function () {
            console.log('ended too');
            data = JSON.parse(body);
            res.json(data);
        });
    });
    request.on('error', function (e) {
        console.log('Problem with request: ' + e.message);
    });
    request.end();
})

【问题讨论】:

    标签: node.js azure-databricks


    【解决方案1】:

    当我得到我的问题的解决方案时,我想与大家分享以供将来参考。

    根据微软文档:enter link description here

    他们要求我们使用https://adb-&lt;workspaceid&gt;.&lt;number&gt;.azuredatabricks.net/api/2.0/jobs/run-now 来点击网址,但我知道我们需要点击网址:

    https://.azuredatabricks.net 然后是 api/2.0/jobs/run-now。所以下面是相同的代码:

      const request=require("request");
      const rp=require("request-promise");
       
       const triggerJob=((res,req)=>{
            var job_payload = {
            "job_id": <Job_ID>
        }
    
     var options = {
            host: 'https://<locationname>.azuredatabricks.net/api/2.0/jobs/run-now',
            body: JSON.stringify(job_payload),
            method: 'Post',
            headers: { 'Content-Type':'application/jsoon','Authorization': 'Bearer token' }
        }
        var response=await rp(url,options);
        if(response!=null){
         return res.json(response)
       }
    });
    
    module.exports= triggerJob;
    

    为了清晰起见,我将代码行最小化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-21
      • 2022-06-23
      • 1970-01-01
      • 1970-01-01
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      相关资源
      最近更新 更多