Spark数据库操作初步
本文的操作环境和安装的版本
- 操作系统:Windows 10 1909版本
- IDE:IntelliJ IDEA Ultimate 2019.2.4版本
- JDK:1.8.0_221
- Hadoop:2.7.1
- Spark:3.0.0-preview
- Scala:2.12.10
- Maven:3.6.2
- 数据库:MySQL 8.0.18
一、准备工作
在之前环境的基础上我们需要安装一个数据库,本文选取MySQL最新版本8.0.18。安装部署数据库的方法不再详述,各位可以参考MySQL 8.0.18安装教程(Windows 64位)。
数据库完成部署之后可以在IntelliJ IDEA中用附带的插件进行连接,点击右侧栏中的Database,添加新的MySQL连接,设置界面如下。
如果没有连接驱动,直接默认下载最新版的即可(虽然最新版的是8.0.15,但是实测可以连接8.0.18版本的MySQL数据库)。URL处一定要指定时区,否则会连接失败;另外注意输入正确的用户名和密码。此时点击测试连接应该会出现上图中绿色的对勾和相关信息,点击OK即可。
然后在Database栏位中创建一个新的数据库,名为:hivemetastore。然后在其中创建相应的表并且导入一些示例数据。
drop table if exists people;
create table people(
id serial primary key,
name varchar(20),
level smallint default 0
);
insert into people values (1, 'zhu', 4), (2, 'katus', 5), (3, 'li', 4);
然后我们需要在pom.xml中补充新的依赖,即MySQL连接驱动相关依赖,更新之后的pom.xml如下。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>zju</groupId>
<artifactId>WordCount</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jdk.version>1.8.0</jdk.version>
<spark.version>3.0.0-preview</spark.version>
<scala.version>2.12</scala.version>
<mysql.version>8.0.18</mysql.version>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-hive -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>