SparkSql将数据写入到MySQL中 | 您所在的位置:网站首页 › spark如何使用rdd开发mysql根据字符串查询 › SparkSql将数据写入到MySQL中 |
通过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文件 bigdata bigdata 1.0-SNAPSHOT 4.0.0 day03_spark 2.11.8 2.2.0 org.scala-lang scala-library ${scala.version} org.apache.spark spark-core_2.11 ${spark.version} org.apache.spark spark-sql_2.11 ${spark.version} org.apache.hadoop hadoop-client 2.7.5
org.apache.spark spark-hive_2.11 2.2.0 mysql mysql-connector-java 5.1.38 src/main/scala src/test/scala org.apache.maven.plugins maven-compiler-plugin 3.0 1.8 1.8 UTF-8 net.alchim31.maven scala-maven-plugin 3.2.0 compile testCompile -dependencyfile ${project.build.directory}/.scala_dependencies org.apache.maven.plugins maven-shade-plugin 3.1.1 package shade *:* META-INF/*.SF META-INF/*.DSA META-INF/*.RSA
打包提交运行: spark2-submit --class Spark_Mysql --master spark://cdh01:7077 /data/SparkMysql-1.0-SNAPSHOT.jar 运行结果: |
CopyRight 2018-2019 实验室设备网 版权所有 |