Spark SQL能够通过DataFrame 和Dataset操作多种数据源执行SQL查询,并且提供了多中数据源之间的转换方式。
读取MySQL数据库:
在master节点使用MySQL客户端创建数据库、数据表以及插入数据,具体命令如下:
mysql -uroot -pPassword123$
数据库和数据表创建后,如果想通过Spark SQL API方式访问MySQL数据库,需要在pom.xml配置文件中添加如下依赖:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.3.2</version>
</dependency
依赖添加完后,就可以编写以下代码:
package cn.itcast
import java.util.Properties
import org.apache.spark.sql.{DataFrame, SparkSession}
object DataFromMysql {
def main(args: Array[String]): Unit = {
//创建sparkSession对象
val spark :SparkSession = SparkSession.builder()
.appName("DataFromMysql")
.master("local[2]")
.getOrCreate()
//创建Properties对象,设置连接MYSQL的用户名和密码
val properties : Properties = new Properties()
properties.setProperty("user","root")
properties.setProperty("password","Password123$")
//读取mysql中的数据
val mysqlDF : DataFrame = spark.read.jdbc("jdbc:mysql://192.168.196.101:3306/spark","person",properties)
//显示MySQL中表的数据
mysqlDF.show()
spark.stop()
}
}
运行结果: