Zeppelin通过REST API执行带有参数的作业(所有段落)

问题描述 投票:0回答:2

我有一个有许多段落的齐柏林飞艇。我有一个段落应该接收/设置一些参数,这些参数将被其他段落进一步使用。

我想通过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

我希望通过参数运行作业(所有段落)有类似的东西,而不必分开调用这样做(一次调用设置参数的段落,一次调用提交整个作业)。

我期待着您的解决方案。

谢谢。

弗洛林

apache-zeppelin
2个回答
1
投票

遗憾的是,在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,在这种情况下,修改源以使数据流按您的需要是唯一可行的方法。


0
投票

Zeppelin拥有可以使用ZeppelinContext用于不同解释器的各种API。

通过:https://zeppelin.apache.org/docs/0.8.0/usage/dynamic_form/intro.html#creates-programmatically-scope-note

码:

val date = z.input("date")
println("Sitaaaa : " +date);

打印作为输出发送的日期

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