SparkSql将数据写入到MySQL
2018-03-11 13:39
639 查看
SparkSql将数据写入到MySQL
1、通过IDEA编写SparkSql代码
package cn.cheng.sql import java.util.Properties import org.apache.spark.rdd.RDD import org.apache.spark.sql.{DataFrame, Dataset, SaveMode, SparkSession} /** * todo:sparksql写入数据到mysql中 */ //todo:创建样例类Student case class Student(id:Int,name:String,age:Int) object SparkSqlToMysql { def main(args: Array[String]): Unit = { //todo:1、创建sparkSession对象 val spark: SparkSession = SparkSession.builder() .appName("SparkSqlToMysql") .getOrCreate() //todo:2、读取数据 val data: RDD[String] = spark.sparkContext.textFile(args(0)) //todo:3、切分每一行, val arrRDD: RDD[Array[String]] = data.map(_.split(" ")) //todo:4、RDD关联Student val studentRDD: RDD[Student] = arrRDD.map(x=>Student(x(0).toInt,x(1),x(2).toInt)) //todo:导入隐式转换 import spark.implicits._ //todo:5、将RDD转换成DataFrame val studentDF: DataFrame = studentRDD.toDF() //todo:6、将DataFrame注册成表 studentDF.createOrReplaceTempView("student") //todo:7、操作student表 ,按照年龄进行降序排列 val resultDF: DataFrame = spark.sql("select * from student order by age desc") //todo:8、把结果保存在mysql表中 //todo:创建Properties对象,配置连接mysql的用户名和密码 val prop =new Properties() prop.setProperty("user","root") prop.setProperty("password","123456") resultDF.write.jdbc("jdbc:mysql://192.168.200.150:3306/spark","student",prop) //todo:写入mysql时,可以配置插入mode,overwrite覆盖,append追加,ignore忽略,error默认表存在报错 //resultDF.write.mode(SaveMode.Overwrite).jdbc("jdbc:mysql://192.168.200.150:3306/spark","student",prop) spark.stop() } }
2、将Jar包提交到spark集群运行
spark-submit \ --class itcast.sql.SparkSqlToMysql \ --master spark://node-1:7077 \ --executor-memory 1g \ --total-executor-cores 2 \ --jars /opt/bigdata/hive/lib/mysql-connector-java-5.1.35.jar \ --driver-class-path /opt/bigdata/hive/lib/mysql-connector-java-5.1.35.jar \ /root/original-spark-2.0.2.jar /person.txt
查看mysql中表的数据
喜欢就点赞评论+关注吧
感谢阅读,希望能帮助到大家,谢谢大家的支持!
相关文章推荐
- 走近SSH之Hibernate--Hibernate创建数据表并向表中写入数据(Hibernate+MySql)
- 使用python查询MySQL数据并写入redis
- MySQL连接字符串设置了字符集,写入数据还出现乱码
- mysql异常Packet for query is too large(mysql写入数据过大)
- c#将文件写入mysql中和从mysql中读数据
- C#批量写入MySQL100w条数据
- Android——Tomcat+MySQL+Servlet,实现将Client传入的数据写入MySQL
- Android通过json向MySQL中读写数据的方法详解【写入篇】
- 存储过程写入大批量数据,用于测试mysql查询优化
- MySQL写入插入数据优化配置
- java程序向mysql写入数据乱码问题
- Spark SQL将数据写入Mysql表的一些坑
- php从memcache读取数据再批量写入mysql的方法
- 对于Packet for query is too large(mysql写入数据过大) 问题的处理
- JAVA写入MySQL数据提示[ERROR 1366 (HY000):错误异常解决方案
- Packet for query is too large(mysql写入数据过大
- Asterisk realtime 之SIP用户动态写入mysql 数据库
- Mysql实现数据的不重复写入(insert if not exists)以及新问题:ID自增不连续的解答
- 使用sparksql读取mysql中的数据
- [置顶] 【python 数据库写入】python把数据框数据写入mongodb、mysql