Zeppelin 通过 REST 使用参数执行作业(所有段落)API
Zeppelin execute job (all paragraphs) with parameters via REST API
我有一个有很多段落的飞艇笔记。我有一段应该 receive/set 设置一些参数,这些参数将被其他段落进一步使用。
我想通过 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
我想为 运行 作业(所有段落)提供类似的参数,而不必为此单独调用(一个 post 调用设置的段落参数,一次调用即可提交整个作业)。
期待您的解答。
谢谢。
弗罗林
不幸的是,在 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 有各种 API,可以将 ZeppelinContext 用于不同的解释器。
代码:
val date = z.input("date")
println("Sitaaaa : " +date);
打印发送日期作为输出
我有一个有很多段落的飞艇笔记。我有一段应该 receive/set 设置一些参数,这些参数将被其他段落进一步使用。
我想通过 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
我想为 运行 作业(所有段落)提供类似的参数,而不必为此单独调用(一个 post 调用设置的段落参数,一次调用即可提交整个作业)。
期待您的解答。
谢谢。
弗罗林
不幸的是,在 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 有各种 API,可以将 ZeppelinContext 用于不同的解释器。
代码:
val date = z.input("date")
println("Sitaaaa : " +date);
打印发送日期作为输出