如何 运行 使用 REST api 和 return 的飞艇笔记本导致 python?

How to run a zeppelin notebook using REST api and return results in python?

我正在 运行使用来自 python 的以下 REST 调用来创建 zeppelin 笔记本:

import requests requests.post('http://x.y.z.x:8080/api/notebook/job/2BZ3VJZ4G').json()

输出为{u'status': u'OK'}

但我想 return 一些 results/exception(如果有的话)从 zeppelin notebook 中的几个块到 python 脚本。

我也试过 运行 笔记本中只有一段使用

requests.post('http://x.y.z.x:8080/api/notebook/job/2BZ3VJZ4G/20160922-140926_526498241').json()

并收到相同的输出 {u'status': u'OK'}。

有人可以帮我在 python 中检索 zeppelin 的结果吗?

Zeppelin 在其最新的尚未发布的 0.7.0 版本中引入了同步 API 到 运行 的段落。您可以从他们的存储库中克隆最新代码并自己构建快照。 URL 对于 API 是 http://[zeppelin-server]:[zeppelin-port]/api/notebook/run/[notebookId]/[paragraphId]。这将 return 段落的输出 运行 完全。

即使在Zeppelin 0.8.0当前未发布版本的API文档中也没有关于如何获取输出的信息,您可以在这里查看:

REST API Docs for Zeppelin 0.8.0

有一种方法可以使用此处描述的段落发布功能来完成此操作:

How can you publishing your paragraph

顺便说一句。如果您 运行 您的段落使用 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.