欢迎关注Hadoop、Spark、Flink、Hive、Hbase、Flume等大数据资料分享微信公共账号:iteblog_hadoop
  1. 文章总数:975
  2. 浏览总数:11,898,395
  3. 评论:3925
  4. 分类目录:105 个
  5. 注册用户数:6079
  6. 最后更新:2018年12月9日
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
iteblog_hadoop
大数据技术博客公众号bigdata_ai
大数据猿:
bigdata_ai

Apache Zeppelin使用入门指南:添加外部依赖

  在前面的两篇文章中我们介绍了如何编译和部署Apache Zeppelin、如何使用Apache Zeppelin。这篇文章中将介绍如何将外部依赖库加入到Apache Zeppelin中。

  在现实情况下,我们编写程序一般都是需要依赖外部的相关类库的,比如我们现在需要Spark读取Mysql里面的数据,所以我们需要添加Mysql相关的依赖。这里将介绍两种方法来添加外部依赖。

  一、我们都知道,很多类库都是可以通过Maven仓库下载到的,所以我们可以指定依赖库的group ID、artifact ID以及version来指定具体的依赖。在Zeppelin中,我们可以通过%dep Interpreter来加载依赖,如下:

%dep
z.load("mysql:mysql-connector-java:5.1.35")

%dep默认就可以使用,z代表的是Zeppelin context。

如果我们觉得Maven中央仓库下载的速度比较慢,我们可以自定义Maven仓库,如下:

%dep
z.addRepo("RepoName").url("RepoURL")

  二、通过指定jar的本地路径来加载外部依赖,具体如下:

%dep
z.load("/path/to.jar")
  在使用dep需要主要的是,我们必须在初始化SparkContext之前就得加载相关的外部类,否则将会出现异常。所以比较明智的方法是,在创建Notebook之后的第一步就是使用dep先加载相关的类库。

上面已经加载好了Mysql驱动,现在我们需要构建连接Mysql相关的参数信息,如下:

val props = scala.collection.mutable.Map[String,String]();
props+=("driver" -> "com.mysql.jdbc.Driver")
props+=("url" -> "jdbc:mysql://www.iteblog.com/scalada?user=root&password=orange123")
props+=("dbtable" -> "(select id, name, phone, email, gender from scalada.student) as students")
props+=("partitionColumn" -> "id")
props+=("lowerBound" -> "0")
props+=("upperBound" -> "100")
props+=("numPartitions" -> "2")

我们可以看出这是Spark连接Mysql的一种方式(更多的方式可以参见《Spark读取数据库(Mysql)的四种方式讲解》),然后我们可以创建DataFrame了:

import scala.collection.JavaConverters._

val studentDf = sqlContext.load("jdbc", props.asJava)
studentDf.printSchema()
studentDf.show()
studentDf.registerTempTable("students")

这样将会输出相关的结果。至此,我们通过dep加载外部依赖库已经介绍完了。

本博客文章除特别声明,全部都是原创!
转载本文请加上:转载自过往记忆(https://www.iteblog.com/)
本文链接: 【Apache Zeppelin使用入门指南:添加外部依赖】(https://www.iteblog.com/archives/1576.html)
喜欢 (6)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!