我有一个有许多段落的齐柏林飞艇。我有一个段落应该接收/设置一些参数,这些参数将被其他段落进一步使用。
我想通过zeppelin REST API提交一份工作,该工作将在正文中设置这些参数。
我知道在zeppelin中有一个运行段落的REST API服务 正文中的参数,这种调用的例子是
curl -H“Content-Type:application / json”-X POST -d'{“params”:{“filename”:“/ myfolder / my_file.txt”,“min”:0.89,“max”: 25}}'http://zep_host:zep_port/api/notebook/job/noteid/pargarph_id
我希望通过参数运行作业(所有段落)有类似的东西,而不必分开调用这样做(一次调用设置参数的段落,一次调用提交整个作业)。
我期待你的解决方案。
感谢。
林
答案 0 :(得分:1)
不幸的是,没有在0.7中使用输入JSON进行处理的功能,我跟踪了同步和异步提交的Rest API源的整个执行流程,他们只是采用了输入JSON而未使用它。提前进行处理的唯一输入是笔记本和段落ID。下面是齐柏林飞艇的段落运行功能的前几行代码。
/**
* 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 v0.7,则在这种情况下,唯一可行的方法就是修改源以使数据流按需进行。
答案 1 :(得分:0)
Zeppelin具有各种API,可以将ZeppelinContext用于不同的解释器。
代码:
val date = z.input("date")
println("Sitaaaa : " +date);
打印作为输出发送的日期