本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
在执行Spark任务的过程中,会引入第三方依赖,在Python库管理里介绍了如何在管控台里安装Python第三方依赖,本文介绍如何在Notebook添加Java第三方依赖。
使用NoteBook引入Java依赖的三种方式
spark.jars
spark.jars.packages
spark.files
用户做好配置之后,在启动spark任务之前(即第一次运行spark、pyspark、sparkR或者sparkSQL相关代码之前)运行spark.conf段落即可对将要启动的spark任务进行配置,从而加载自己想要依赖的第三方资源
NoteBook在启动前只能加载一次,如需更新spark.conf,需要重启NoteBook,所以请一次性加载好所需依赖
不同NoteBook作业间不会共享使用spark.conf引入的依赖,在开发中推荐使用spark.conf的方式。
以下介绍了如何使用spark.jars,spark.jars.packages,spark.files方式引入第三方依赖。
方式1: spark.jars
spark.jars 可以用来指定 jar文件,多个jar包可以用逗号隔开,下图示例展示了使用spark.jars执行WordCount
打包可执行的WordCount案例
2. 将打包好的jar上传到OSS或者HDFS
3. 在NoteBook引入依赖
%spark.conf
spark.jars oss://databricks-data-source/jars/wordcount.jar
4. 在NoteBook调用jar,执行wordAndcount()
方式2: spark.jars.packages
spark.jars.packages 可以用package的形式来指定依赖包,spark会动态下载这些package,然后放到classpath里,多个package以逗号分隔,如下图示例
在NoteBook引入packages,并调用。
%spark.conf
spark.jars.packages com.alibaba:fastjson:2.0.12,org.apache.poi:poi-ooxml:3.15,redis.clients:jedis:3.1.0
方式3: spark.files
spark.files 用来指定 file文件,多个file文件以逗号分隔,下图示例展示如何使用spark.files读取配置文件链接MySQL。
将conf.properties文件上传到OSS
2. 在NoteBook中加载spark.files 配置文件
%spark.conf
spark.files oss://databricks-data-source/jars/conf.properties
3. 在NoteBook实现读取配置文件信息,链接MySQL
%spark
import java.util.Properties
//使用Properties读取配置文件信息
val properties = new Properties
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("conf.properties"))
val url=properties.getProperty("jdbc.url")
val dbPwd=properties.getProperty("jdbc.password")
val dbUser=properties.getProperty("jdbc.username")
val driver=properties.getProperty("jdbc.driver")
//链接MySQL配置项
val jdbcpro = new Properties()
jdbcpro.setProperty("user", dbUser)
jdbcpro.setProperty("password", dbPwd)
//spark链接mySQL读取表数据
val rds_data=spark.read.option("driver","com.mysql.cj.jdbc.Driver").jdbc(url, "word_count", jdbcpro)
//数据展示
rds_data.show(10)
4. 数据展示
通过管理员在NoteBook解释器配置页面进行全局配置
在解析器页面配置的是全局配置作用于整个集群
在开发中推荐上面案例中使用spark.conf命令行形式配置