之前的文章中我们介绍了如何在Zeppelin中使用不同运行模式的Spark解释器,以及如何进行用户模拟,当我们在实际使用Spark解释器的过程中会遇到一个不可避免的需求: 用户需要使用Spark自带库以外的功能,比如需要从Spark中读写MySQL,这种时候就需要安装
mysql-connector
的Jar包,本文就以此为例,展示如何在Zeppelin中为Spark解释器安装和使用扩展库。
0. 环境说明
-
Zeppelin正常安装运行;
-
Spark解释器能够正常运行,无论是local模式还是其它运行模式;
-
已经创建好测试用的数据库和表,语句如下:
create database zeppelin2mysql; grant all privileges on zeppelin2mysql.* to 'iamabug'@'%' identified by 'passwd'; create table tb (id int not null, name varchar(10) not null) engine=InnoDB default charset=utf8;
1. 不安装Jar包
一个简单的Spark写MySQL的例子如下:
%pyspark
# 构造dataframe,其中id和name都是str
rdd = sc.parallelize([[101, "hello"]])
df = rdd.toDF(("id", "name"))
df.write.format('jdbc').options(
url='jdbc:mysql://localhost:3306/zeppelin2mysql',
driver='com.mysql.jdbc.Driver',
dbtable='tb',
user='iamabug',
password='passwd').mode('append').save()<