用过Zeppelin的朋友都应该是主要用于操作Spark的,在自带的SparkGroup中已经支持Scala(spark)和Python(pyspark),但所却缺少对Java的支持,由于Java没有REPL,但是刚好Groovy拥有REPL而且完全可以按照Java风格编写Groovy所以这里准备在SparkGroup中添加Groovy
上一篇中已经讲过如何配置Groovy解释器,所以本次只需要将此解释器加入到SparkInterpreter的jar包中并配置部分文件即可,用Groovy操作spark其实就三对sparkcontext的操作,所以只需要将SparkInterpreter的sparkcontext拿过来即可。
- Zeppelin的编译
在github中下载源码进行编译
https://github.com/apache/zeppelin.git
编译完成后在Idea内能看到zeppelin-spark module ,结构如下图,在module中新建两个类,与zeppelin-groovy中一样,需要作少许修改,此处GroovySparkInterpreter就是需要修改的新spark解释器
- GroovySparkInterpreter
修改GroovySparkInterpreter,并对zeppelin-spark打包替换ZEPPELIN_HOME/interpreter/spark/下的jar包
package org.apache.zeppelin.spark;
public class GroovySparkInterpreter extends Interpreter {
…………
//新增的spark相关的fields
private SparkInterpreter sparkInterpreter;
private SparkContext sparkContext;
private SQLContext sqlContext;
private SparkZeppelinContext zeppelinContext;