全部产品

Java库管理

在执行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方式引入第三方依赖。

data

方式1: spark.jars

说明

spark.jars 可以用来指定 jar文件,多个jar包可以用逗号隔开,下图示例展示了使用spark.jars执行WordCount

  1. 打包可执行的WordCount案例

data2. 将打包好的jar上传到OSS或者HDFS

3. 在NoteBook引入依赖

%spark.conf
spark.jars oss://databricks-data-source/jars/wordcount.jar

4. 在NoteBook调用jar,执行wordAndcount()

data

方式2: spark.jars.packages

说明

spark.jars.packages 可以用package的形式来指定依赖包,spark会动态下载这些package,然后放到classpath里,多个package以逗号分隔,如下图示例

  1. 在NoteBook引入packages,并调用。

%spark.conf
spark.jars.packages com.alibaba:fastjson:1.2.73,org.apache.poi:poi-ooxml:3.15,redis.clients:jedis:3.1.0
data

方式3: spark.files

说明

spark.files 用来指定 file文件,多个file文件以逗号分隔,下图示例展示如何使用spark.files读取配置文件链接MySQL。

  1. 将conf.properties文件上传到OSS

data

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. 数据展示

data

通过管理员在NoteBook解释器配置页面进行全局配置

警告

  • 在解析器页面配置的是全局配置作用于整个集群

  • 在开发中推荐上面案例中使用spark.conf命令行形式配置

data