如何获得相邻Zeppelin细胞之间上下文的连续性

时间:2017-01-18 19:06:11

标签: apache-spark apache-zeppelin

如下面的zeppelin笔记本所示,我们有两个单元格:

  • 第一个单元格执行操作并将结果保存在out变量
  • 第二个单元格尝试对out变量执行操作。相反,有一个错误表明单元格 甚至没有意识到它应该运行pyspark

enter image description here

如此 - jupyter/ipython notebook - 似乎Zeppelin在细胞之间没有连续性:每个细胞是完全独立的?这是严重限制:我们希望将工作划分为块并一次运行一个块...就像在Jupyter中一样..

所以我错过了一些关于如何将细胞“链接”在一起的东西?

1 个答案:

答案 0 :(得分:3)

每个段落(与jupyter中的单元格相同)可以使用不同的技术。 Zeppelin称为intepreter支持这些。而正是因为这使Zeppelin方便。

假设像这个用例。

  • 使用Markdown描述笔记本

  • 使用Shell准备数据,如curl,cp

  • 使用Spark进行分析

  • 使用带有临时表的Spark

  • 进行SQL分析
  • 使用Shell发布结果文件

范围

环境由同一笔记本中的同一个解释器直接共享。意思是。

  

SAME 类型的口译员中,段落 CAN 中定义的变量/方法/类会被段落稍后执行使用。它不需要在物理上更晚,只需要稍后执行。

     

DIFFERENT 类型的Interpreter中,稍后执行的段落中将使用 CAN NOT 中定义的变量/方法/类。

     

在不同的解释器之间,变量/方法/类不是直接可见的。 Backend Angular API可用于在不同的解释器之间传递。

     

在Spark和Pyspark之间,临时表彼此可见。

默认解释器。

  • 一个笔记本可以有一个默认解释器。
  • 要使用的其他解释器应明确使用%表示法。

实施例

这是一个例子。 enter image description here