You get it --> Spark SQL 中的JDBC
来源:互联网 发布:消防工程预算软件 编辑:程序博客网 时间:2024/05/22 03:18
Spark SQL 可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中
从MySQL中加载数据(Spark Shell方式)
1.启动Spark Shell,必须指定mysql连接驱动jar包
/usr/local/spark-1.6.1/bin/spark-shell \--master spark://minimaster:7077 \--jars /usr/local/spark-1.6.1/mysql-connector-java-5.1.6-bin.jar \--driver-class-path /usr/local/spark-1.6.1/mysql-connector-java-5.1.6-bin.jar
2.从mysql中加载数据
val jdbcDF = sqlContext.read.format("jdbc").options(Map("url" -> "jdbc:mysql://192.168.222.156:3306/bigdata", "driver" -> "com.mysql.jdbc.Driver", "dbtable" -> "location_info", "user" -> "root", "password" -> "root")).load()
3.执行查询
将数据写入到MySQL中
编写Spark SQL程序
package myRPC.qf.itcast.RDDimport java.util.Propertiesimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.{DataFrame, Row, SQLContext, types}import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}import org.apache.spark.{SparkConf, SparkContext}object InsertDataToMySQL { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("InsertDataToMySQL")//.setMaster("local[2]") val sc = new SparkContext(conf) val sqlContext = new SQLContext(sc) //获取数据 val linesRDD: RDD[Array[String]] = sc.textFile("hdfs://minimaster:9000/person2.txt").map(_.split(" ")) //StructType指定Schema[表结构] val schema: StructType = StructType { List( StructField("name", StringType, false), StructField("age", IntegerType, false) ) } //linesRDD[数据]映射到Row[表结构顺序] val personRDD: RDD[Row] = linesRDD.map(p => Row(p(0),p(1).toInt)) //生成DataFrame val personDF: DataFrame = sqlContext.createDataFrame(personRDD,schema) //声明一个属性,用于封装请求MySQL的一些配置 val prop = new Properties() prop.put("user","root") prop.put("password","root") prop.put("driver","com.mysql.jdbc.Driver") //写入数据到MySQL personDF.write.mode("append").jdbc("jdbc:mysql://minimaster/bigdata","person",prop) sc.stop() }}
用maven将程序打包
将jar包提交到spark集群中(启动hdfs)
/usr/local/spark-1.6.1/bin/spark-submit \--class myRPC.qf.itcast.RDD.InsertDataToMySQL \--master spark://minimaster:7077 \/home/wc.jar \--jars /usr/local/spark-1.6.1/mysql-connector-java-5.1.6-bin.jar \--driver-class-path /usr/local/spark-1.6.1/mysql-connector-java-5.1.6-bin.jar
运行结果:
可以使用第三方工具[navicat]查看
阅读全文
1 0
- You get it --> Spark SQL 中的JDBC
- just do it ,you will get more.
- spark中的SQL
- Spark SQL中的DataFrame
- JDBC中的SQL
- 如何使用Spark SQL 的JDBC server
- 9. Spark SQL:JDBC数据源实战
- spark学习十一 spark中的sql
- MySql JDBC:You have an error in your SQL syntax;
- JDBC中的SQL注入问题
- Spark SQL读取Hive数据配置及使用Thrift JDBC/ODBC Server访问Spark SQL
- spark SQL Running the Thrift JDBC/ODBC server
- spark SQL Running the Thrift JDBC/ODBC server
- 【Bug】Spark sql jdbc fails for Oracle NUMBER type columns
- Spark SQL通过JDBC连接MySQL读写数据
- 通过Thrift Server使用JDBC来运行Spark SQL
- you build it,you run it
- Spark 2.0介绍:Spark SQL中的Time Window使用
- 斗鱼将直播腾讯GADC峰会 主播体验国内首款Hololens
- 佳能惹争议:物联网取决于影像技术?
- 【软考】纠错5
- Merge Sorted Array 混合插入有序数组
- 第一部分 第二章 答案合集(part 1)1006-1023
- You get it --> Spark SQL 中的JDBC
- 腾讯“互联网+警务”峰会召开,打造智慧型警务“新”服务
- uva10099
- 关于10-28日题目的题解与总结
- 第一章:SQL数据操作和查询
- 记录一次ubuntu的VNC远程登陆安装
- ubuntu17.04之static_ip+ssh+ lamp+django
- 雷军玩直播,强东开公号,大佬们也争当网红!
- 原太极越狱创始人重新创业,这次的目标是载人飞行器