Spark---Datasource(JDBC)---Scala
来源:互联网 发布:软件注册赚钱靠谱吗 编辑:程序博客网 时间:2024/05/29 18:26
package com.spark.sparksql.datasource.scalaimport java.sql.DriverManagerimport java.utilimport org.apache.spark.sql.types.{StructType, IntegerType, StringType, StructField}import org.apache.spark.sql.{Row, SQLContext}import org.apache.spark.{SparkContext, SparkConf}/** * Created by root on 2017/8/10. */object JDBCDataSource { def main(args: Array[String]) { val conf = new SparkConf().setAppName("JDBCDataSource").setMaster("local") val sc = new SparkContext(conf) val sqlContext = new SQLContext(sc) var options = new util.HashMap[String,String]() options.put("url","jdbc:mysql://spark001:3306/test") options.put("user","root") options.put("password","123123") options.put("dbtable","student_infos") val studentInfosDF = sqlContext.read.format("jdbc").options(options).load() options.put("dbtable","student_scores") val studentScoresDF = sqlContext.read.format("jdbc").options(options).load() // 将两个DataFrame数据框转换成PairRDD,进行JOIN操作 val rdd1 = studentInfosDF.map(x => (x.getString(0), x.getInt(1))) val rdd2 = studentScoresDF.map(x => (x.getString(0), x.getInt(1))) val studentsRDD = rdd1.join(rdd2) // 将PairRDD转换为RDD<Row> val studentsRowRDD = studentsRDD.map(x => Row(x._1, x._2._1, x._2._2)) val goodStudentsRDD = studentsRowRDD.filter(x => x.getInt(2)>80) val structFields = Array(StructField("name", StringType, true) ,StructField("age", IntegerType, true) ,StructField("score", IntegerType, true)) val studentsDF = sqlContext.createDataFrame(goodStudentsRDD, StructType(structFields)) for(row <- studentsDF){ println(row) } studentsDF.foreach( row => { val sql = "insert into good_student_infos values(" +"'" + row.getString(0) + "'," + row.getInt(1) + "," + row.getInt(2) + ")" Class.forName("com.mysql.jdbc.Driver") val conn = DriverManager.getConnection("jdbc:mysql://node15:3306/test","root","123123") val stat = conn.createStatement() stat.executeUpdate(sql) if(stat != null){ stat.close() } if(conn != null){ conn.close() } } ) }}
阅读全文
0 0
- Spark---Datasource(JDBC)---Scala
- Spark---Datasource(JSON)---Scala
- Spark---Datasource(JDBC)---java
- spark-jdbc-oracle(scala)
- jdbc DataSource
- Spark--Datasource(Hive)
- Spark---Datasource(JSON)---java
- JDBC与DataSource
- JDBC与DataSource
- spark,scala
- java:comp/env/jdbc/datasource 与 jdbc/datasource 的不同之处。
- java:comp/env/jdbc/datasource 与 jdbc/datasource 的不同之处
- WebMethods JDBC driver’s DataSource
- org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy
- jdbc dao 注入 dataSource 失败
- scala 开发spark程序
- scala for spark
- scala spark开发模式
- 阿里 离线数据同步工具 DataX 初试
- Java开发中的23种设计模式详解
- 2017多校训练6-1008:Kirinriki(HDU6103)
- 为什么用下标遍历容器如此有用
- 1111111111111111111111111111
- Spark---Datasource(JDBC)---Scala
- 【JZOJ 5249】【NOIP2017提高A组模拟8.10】文本编辑器
- 1062. 最简分数(20)
- 每个程序员都应该收藏的算法复杂度速查表
- 2017杭电多校第六场 1011 (勉强算容斥吧)HDU 6106
- Square Destroyer UVA
- jedis操作redis,结合spring,原生方法
- 微信小程序获取用户信息官方推荐方案
- App冷启动与启动白屏处理