通过IDEA编写SparkSql代码
将person.txt文本文件写入到mysql数据库表当中去
思路解析:通过sparkContext读取文件,然后转换成RDD,将RDD转换成为DataFrame,然后注册成为一张表,查询出来数据,插入保存到mysql当中去
代码实现:
import java.util.Properties
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}
case class Peson(id:Int,name:String,age:Int)
object Spark_Mysql {
/**
* 读取文本文件数据,然后写入到mysql数据库表当中去
*
*/
def main(args: Array[String]): Unit = {
//获取sparkSession
val sparkSession: SparkSession = SparkSession.builder().appName("spark_Mysql").master("local[2]").getOrCreate()
//通过sparkSession得到sparkContext
val sparkContext: SparkContext = sparkSession.sparkContext
//通过sparkContext 读取文本文件内容,得到RDD
val arrRDD: RDD[Array[String]] =
sparkContext.textFile("file:///F:\\person.txt").map(x => x.split(" "))
//通过RDD,配合样例类,将我们的数据转换成样例类对象
val personRDD: RDD[Person] = arrRDD.map(x => Person(x(0).toInt,x(1),x(2).toInt))
//导入sparkSession当中的隐式转换,将我们的样例类对象转换成DataFrame
import sparkSession.implicits._
val personDF: DataFrame = personRDD.toDF()
//打印dataFrame当中的数据
val personDFShow: Unit = personDF.show()
//将DataFrame注册成为一张表模型
val personView: Unit = personDF.createTempView("person_view")
//获取表当中的数据
val result: DataFrame = sparkSession.sql("select * from person_view")
//获取mysql连接
val url ="jdbc:mysql://localhost:3306/userdb"
val tableName = "person"
val properties = new Properties()
properties.setProperty("user","root")
properties.setProperty("password","root123")
//将我们查询的结果写入到mysql当中去
val jdbc: Unit = result.write.mode(SaveMode.Append).jdbc(url,tableName,properties)
sparkContext.stop()
sparkSession.close()
}
}
所需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">
<parent>
<artifactId>bigdata</artifactId>
<groupId>bigdata</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0&

本文通过IDEA使用SparkSql将person.txt文本文件转换为DataFrame并注册为表,然后将其数据保存到MySQL数据库中。涉及到的依赖包括Spark、Hadoop、Spark-Hive和MySQL连接器。代码中详细展示了pom.xml配置和打包提交运行的命令。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



