我使用python的以下REST调用运行zeppelin笔记本:
import requests
requests.post('http://x.y.z.x:8080/api/notebook/job/2BZ3VJZ4G').json()
输出是{u'status':u'OK'}
但我想从zeppelin笔记本中的几个块返回一些结果/异常(如果有的话)到python脚本。
我还尝试在笔记本中只使用一段
requests.post('http://x.y.z.x:8080/api/notebook/job/2BZ3VJZ4G/20160922-140926_526498241').json()
并收到相同的输出{u'status':u'OK'}。
有人可以帮我从python中的zeppelin中检索结果吗?
Zeppelin推出了一个同步API来运行最新版本的0.7.0版本。您可以从其repo克隆最新代码并自己构建快照。 API的URL是http://[zeppelin-server]:[zeppelin-port]/api/notebook/run/[notebookId]/[paragraphId]。这将在完全运行后返回段落的输出。
即使在当前未发布的Zeppelin 0.8.0版本的API文档中,也没有关于如何获得输出的信息,您可以在此处查看:
REST API Docs for Zeppelin 0.8.0
有一种方法可以使用此处描述的段落发布功能来实现此目的:
How can you publishing your paragraph
BTW。如果您使用API调用或Zeppelin GUI运行您的段落,iframe将自动重新加载。
在Zeppelin 0.8.0中,我们可以在通过REST API传递参数后运行Notebooks的段落。您可以在笔记本中创建动态表单,并将其分配给将在整个笔记本中使用的变量。
%pyspark
input_master = z.input("value", 2) # 2 is default value
z.put("value_item", input_master)
print(input_master) // 2
%sh
curl --header "Content-Type: application/json" \
--request POST \
--data '{"params": {"value" : 6}}' \
http://[zeppelin-server]:[zeppelin-port]/api/notebook/run/[note-id]/[paragraph-id]
%spark
val value = z.get("value_item") // 6
供参考,https://zeppelin.apache.org/docs/0.8.0/usage/dynamic_form/intro.html和https://zeppelin.apache.org/docs/0.8.0/usage/rest_api/notebook.html。