zeppelin-context是一个用于通用实用程序函数和用户特定数据的系统范围容器。它实现了用于数据输入、数据显示等的功能,这些功能通常是必需的,但并非所有解释器都能统一使用。它的每个用户实例可以跨所有用户的笔记本和单元访问,从而支持单元之间的数据交换——甚至在不同的笔记本中。但是zeppelin-context的使用方式和可用的功能取决于相关的解释器是否基于一种编程语言。zeppelin-context如何用于不同目的和不同环境的细节描述如下。
1、在scala与python两种语言之间的对象交换方法
%spark
val user = "zhangsan"
z.put("name",user)
//****Exchanging data frames
val df = ....
z.put("mydf", df)
%pyspark
print(z.get("name")
//获取spark中的data frame变量对象
myScalaDataFrame = DataFrame(z.get("mydf"), sqlContext)
2、 Object Interpolation
scala或者python与jdbc、spark sql、shell交换对象
%spark
z.put("date", 20200908)
%hive
select terminalid from ecar_match_gps where ds={date} limit 5
默认情况下,此功能是禁用的,并且必须通过将特定于解释器的属性的值设置为true来为每个解释器独立显式打开此功能。
shell中开启方法,在sh解释器中编辑 zeppelin.shell.interpolation 值为true
spark sql解释器中编辑 zeppelin.spark.sql.interpolation 值为true
jdbc解释器中编辑 zeppelin.jdbc.interpolation 值为true
目前,只有SparkSQL、JDBC和Shell解释器支持Object Interpolation。
文章评论