我有一个有许多段落的齐柏林飞艇。我有一个段落应该接收/设置一些参数,这些参数将被其他段落进一步使用。
我想通过zeppelin REST API提交一份工作,该工作将在正文中设置这些参数。
我知道在zeppelin中有一个REST API服务,它运行一个带有参数的段落,这样的调用的例子是
curl -H“Content-Type:application / json”-X POST -d'{“params”:{“filename”:“/ myfolder / my_file.txt”,“minmin::0。89,”“”}:} 'http://zep_host:zep_port/api/notebook/job/noteid/pargarph_id
我希望通过参数运行作业(所有段落)有类似的东西,而不必分开调用这样做(一次调用设置参数的段落,一次调用提交整个作业)。
我期待着您的解决方案。
谢谢。
弗洛林
遗憾的是,在0.7中没有使用输入JSON进行处理的工具,我跟踪了同步和异步提交的Rest API源的整个执行流程,它们只接受输入JSON而不使用它。处理的唯一输入是您的笔记本和段落ID。下面是Zeppelin段落运行功能的前几行代码。
/**
* Run a single paragraph.
*
* @param paragraphId ID of paragraph
*/
public void run(String paragraphId) {
Paragraph p = getParagraph(paragraphId);
p.setListener(jobListenerFactory.getParagraphJobListener(this));
if (p.isBlankParagraph()) {
logger.info("skip to run blank paragraph. {}", p.getId());
p.setStatus(Job.Status.FINISHED);
return;
}
显然,对输入进行处理的可能性是无限的,这些输入根本无法提供。每个人都可以期望根据他们的输入执行不同的过程,因此在Zeppelin中创建通用控制流程是非常不同的。
话虽如此,作为一种解决方案,我已经修改了源代码,以稍微不同的方式服务于我的目的。如果您还必须使用Zeppelin v0.7,在这种情况下,修改源以使数据流按您的需要是唯一可行的方法。
Zeppelin拥有可以使用ZeppelinContext用于不同解释器的各种API。
码:
val date = z.input("date")
println("Sitaaaa : " +date);
打印作为输出发送的日期