我们如何从命令行运行笔记本?
除了 1 之外,我如何将命令行参数传递到笔记本中? IE。从笔记本代码中访问命令行参数?
所以我遇到了同样的问题,并设法弄清楚如何使用 API 来使用curl 运行笔记本。至于传递命令行参数,我认为根本没有办法做到这一点 - 您将不得不在服务器上使用某种共享状态(例如,让笔记本从文件中读取并修改文件)。
无论如何,这就是我设法运行笔记本的方式,它假设jq
已安装。非常参与:(
curl -XGET http://${ip}:8080/api/interpreter/setting | jq '.body[] | .id'
interpreter_settings_ids=`curl -XGET http://${ip}:8080/api/interpreter/setting | jq '.body[] | .id'`
id_array="["`echo ${interpreter_settings_ids} | tr ' ' ','`"]"
curl -XPUT -d $id_array http://${ip}:8080/api/notebook/interpreter/bind/${notebook_id}
curl -XPOST http://${ip}:8080/api/notebook/job/${notebook_id}
如果有人手动单击解释器绑定的“保存”按钮,则只需要最后一个命令。
UPDATE:
好的,我认为您可以循环探测正在运行的笔记本的状态,以确定笔记本是否出现故障,请参阅:https://github.com/eBay/Zeppelin/blob/master/docs/rest-api/rest-notebook.md
例如
function job_success {
num_cells=`curl -XGET http://${ip}:8080/api/notebook/job/${notebook_id} 2>/dev/null | jq '.body[] | .status' | wc -l`
num_successes=`curl -XGET http://${ip}:8080/api/notebook/job/${notebook_id} 2>/dev/null | jq '.body[] | .status' | grep FINISHED | wc -l`
test ${num_cells} = ${num_successes}
}
function job_fail {
curl -XGET http://${ip}:8080/api/notebook/job/${notebook_id} 2>/dev/null | jq '.body[] | .status' | grep ERROR
}
until job_success || job_fail
do
sleep 10
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)