如何使用REST api运行zeppelin笔记本并在python中返回结果?

问题描述 投票:1回答:3

我使用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中检索结果吗?

python rest apache-zeppelin
3个回答
1
投票

Zeppelin推出了一个同步API来运行最新版本的0.7.0版本。您可以从其repo克隆最新代码并自己构建快照。 API的URL是http://[zeppelin-server]:[zeppelin-port]/api/notebook/run/[notebookId]/[paragraphId]。这将在完全运行后返回段落的输出。


0
投票

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

REST API Docs for Zeppelin 0.8.0

有一种方法可以使用此处描述的段落发布功能来实现此目的:

How can you publishing your paragraph

BTW。如果您使用API​​调用或Zeppelin GUI运行您的段落,iframe将自动重新加载。


0
投票

在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.htmlhttps://zeppelin.apache.org/docs/0.8.0/usage/rest_api/notebook.html

© www.soinside.com 2019 - 2024. All rights reserved.