RDD和Mysql互相操作
来源:互联网 发布:vga矩阵切换器24进 编辑:程序博客网 时间:2024/05/29 10:43
示例代码如下,记录下:
package cn.lijie.businessimport java.sql.{Connection, DriverManager, PreparedStatement}import org.apache.spark.rdd.JdbcRDDimport org.apache.spark.{SparkConf, SparkContext}/** * User: lijie */object JDBCTest { /** * 持久化方法 * * @param it */ def persistData(it: Iterator[(String, Int)]): Unit = { var conn: Connection = null var pre: PreparedStatement = null val sql: String = "insert into jdbc_spark (w,c) VALUES (?,?)" try { conn = DriverManager.getConnection("jdbc:mysql://192.168.80.123:3306/portrait?user=root&password=") it.foreach(x => { pre = conn.prepareStatement(sql) pre.setString(1, x._1) pre.setInt(2, x._2) pre.executeUpdate() }) } catch { case e: Exception => println(e.getMessage) } finally { if (pre != null) { pre.close() } if (conn != null) { conn.close() } } } /** * 获取连接 */ def getConn: Connection = { Class.forName("com.mysql.jdbc.Driver") val conn = DriverManager.getConnection("jdbc:mysql://192.168.80.123:3306/portrait?user=root&password=") conn } def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("jdbc").setMaster("local[2]") val sc = new SparkContext(conf) // sc.parallelize(List("lijie lijie hello", "aaa bbb aaa", "aaa bbb aaa ccc")).flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _).sortBy(_._2).foreachPartition(persistData(_)) val query = new JdbcRDD(sc, getConn _, "select * from jdbc_spark where id between ? and ? ", 1, 5, 2, rs => { (rs.getInt(1), rs.getString(2), rs.getInt(3)) }) println(query.count()) for (i <- query.collect) { println("id:" + i._1 + " w:" + i._2 + " c:" + i._3) } }}
阅读全文
0 0
- RDD和Mysql互相操作
- JavaRDD和RDD的互相转换--终极版
- spark RDD transformation和action操作
- RDD操作
- 操作RDD
- Mysql和SqlServer互相转换
- rdd和DF数据存入MYSQL
- spark中RDD的转化操作和行动操作
- javascript和Asp.net互相操作cookie
- XML和SQL的互相操作
- Objective-C 和 Swift互相操作
- [C#]Datatable和json互相转换操作
- Java接入Spark之创建RDD的两种方式和操作RDD
- Java接入Spark之创建RDD的两种方式和操作RDD
- MSSQLServer 和 Mysql 数据互相转换
- Hive和MySQL数据互相导入
- Hbase和Mysql文件互相导入
- Spark编程指引(三)-----------------RDD操作,shuffle和持久化
- C++学习笔记三:字符串、向量和数组
- StretchDIBits函数
- 网络通讯组件包Red Carpet Subscriptions 2017 v2发布,升级整个代码库
- 长期运行程序的文件描述符泄漏问题
- 开始
- RDD和Mysql互相操作
- HDU 4427 Math Magic(DP)
- POI实现json字符串解析后导出到excel
- python可变参数之*args和*kwargs学习回顾
- 人见人爱A^B
- 项目中与php后台交接接口 javabean与请求返回的数据类型不匹配导致的出错
- LeetCode
- PHP获取 ,根目录,当前文件路径,上层目录路径 ,文件名,扩展名
- Linux 缺少库,查找库的安装包的方法