1

我正在尝试在 Linux 服务器上的 bash 脚本中使用笔记本参数运行 Databricks 作业。我正在按照文档中的说明进行操作,并且我已经验证了这些命令在终端中是否有效。

这是我的脚本:

#!/bin/bash

### this commands works in terminal but not when running script
databricks jobs run-now --job-id 1 --notebook-params '{"param1":"value1"}'

### this command works fine in terminal and when running script
databricks runs list

我得到的错误是:

Error: JSONDecodeError: Expecting value: line 1 column 59 (char 58)

同样有趣的是,其他databricks-cli命令不需要 JSON 字符串参数即可工作。

4

1 回答 1

1

我在问题中提供的脚本实际上并不代表我正在运行的脚本。

我实际运行的脚本是这样的:

#!/bin/bash

currentdate=`date +\%Y\%m\%d`
RUNDATE=$(date "--date=${currentdate} - ${stepsize} day" +%Y%m%d)

### this commands works in terminal but not when running script
databricks jobs run-now --job-id 1 --notebook-params '{"param1":"value1", "rundate":"$RUNDATE"}'

### this command works fine in terminal and when running script
databricks runs list

问题是将变量传递给 JSON。

工作版本是这样的:

#!/bin/bash

stepsize=1
currentdate=`date +\%Y\%m\%d`
RUNDATE=$(date "--date=${currentdate} - ${stepsize} day" +%Y%m%d)

echo $rundate 

databricks jobs run-now --job-id 263 --notebook-params '{"param1":"value1", "rundate":"'"$RUNDATE"'"}'

databricks runs list
于 2019-05-09T14:51:31.743 回答