将SparkSQL计算结果写入Mysql中

编写代码

  1. package com.itunic.sql
  2. import java.util.Properties
  3. import org.apache.spark.sql.{Row, SQLContext}
  4. import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}
  5. import org.apache.spark.{SparkConf, SparkContext}
  6. /**
  7.   * Created by c on 2017/1/3.
  8.   *  Spark SQL
  9.   *  将数据写入到MySQL中
  10.   * by me:
  11.   * 我本沉默是关注互联网以及分享IT相关工作经验的博客,
  12.   * 主要涵盖了操作系统运维、计算机编程、项目开发以及系统架构等经验。
  13.   * 博客宗旨:把最实用的经验,分享给最需要的你,
  14.   * 希望每一位来访的朋友都能有所收获!
  15.   */
  16. object JdbcRDD {
  17.   def main(args: Array[String]) {
  18.     val conf = new SparkConf().setAppName("JdbcRDD").setMaster("local")
  19.     val sc = new SparkContext(conf)
  20.     val sqlContext = new SQLContext(sc)
  21.     //通过并行化创建RDD
  22.     val personRDD = sc.parallelize(Array("1 tom 5""2 jerry 3""3 kitty 6")).map(_.split(" "))
  23.     //通过StructType直接指定每个字段的schema
  24.     val schema = StructType(
  25.       List(
  26.         StructField("id", IntegerType, true),
  27.         StructField("name", StringType, true),
  28.         StructField("age", IntegerType, true)
  29.       )
  30.     )
  31.     //将RDD映射到rowRDD
  32.     val rowRDD = personRDD.map(p => Row(p(0).toInt, p(1).trim, p(2).toInt))
  33.     //将schema信息应用到rowRDD上
  34.     val personDataFrame = sqlContext.createDataFrame(rowRDD, schema)
  35.     //创建Properties存储数据库相关属性
  36.     val prop = new Properties()
  37.     prop.put("user""root")
  38.     prop.put("password""root")
  39.     //将数据追加到数据库
  40.     personDataFrame.write.mode("append").jdbc("jdbc:mysql://192.168.155.1:3306/test""test.t_person", prop)
  41.     //停止SparkContext
  42.     sc.stop()
  43.   }
  44. }

打包并发布到spark集群

  1. $SPARK_HOME/bin/spark-submit \
  2. --class com.itunic.sql.JdbcRDD \
  3. --master spark://ResourceManagerServer1:7077 \
  4. --jars /usr/local/spark-1.5.2-bin-hadoop2.6/mysql-connector-java-5.1.35-bin.jar \
  5. --driver-class-path /usr/local/spark-1.5.2-bin-hadoop2.6/mysql-connector-java-5.1.35-bin.jar \
  6. /root/spark-mvn-1.0-SNAPSHOT.jar

 

  • 将SparkSQL计算结果写入Mysql中已关闭评论
  • 139 views
  • A+
所属分类:未分类
avatar