包:mysql-connector-java-5.1.39-bin.jar

平台:Win8.1

环境:MyEclipse2015

hadoop-2.7.3.tar.gz + winutils.exe

spark-2.1.0-bin-hadoop2.7.tgz

scala-2.11.8.tgz

package org.ah.rcmd
import java.sql.{ DriverManager, PreparedStatement, Connection } object Rdbms {
def setRcmdResult(iterator: Iterator[(String, String, String, String, String, String)]): Unit = {
var conn: Connection = null
var ps: PreparedStatement = null
val sbSqlUpdate = new StringBuilder;
sbSqlUpdate ++= " UPDATE recommond"
sbSqlUpdate ++= " SET"
sbSqlUpdate ++= " url1 = ?,"
sbSqlUpdate ++= " url2 = ?,"
sbSqlUpdate ++= " url3 = ?,"
sbSqlUpdate ++= " url4 = ?,"
sbSqlUpdate ++= " url5 = ?"
sbSqlUpdate ++= " WHERE uName = ?" val sqlInsert = "insert into recommond(url1,url2,url3,url4,url5,uName) values (?,?,?,?,?,?)"
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ahrecommend",
"root", "root")
iterator.foreach(data => {
ps = conn.prepareStatement(sbSqlUpdate.toString)
ps.setString(1, data._2)
ps.setString(2, data._3)
ps.setString(3, data._4)
ps.setString(4, data._5)
ps.setString(5, data._6)
ps.setString(6, data._1)
if (ps.executeUpdate < 1) {
ps = conn.prepareStatement(sqlInsert)
ps.setString(1, data._2)
ps.setString(2, data._3)
ps.setString(3, data._4)
ps.setString(4, data._5)
ps.setString(5, data._6)
ps.setString(6, data._1)
ps.executeUpdate()
}
})
} catch {
case e: Exception => println(e.fillInStackTrace())
} finally {
if (ps != null) {
ps.close()
ps = null
}
if (conn != null) {
conn.close()
conn = null
}
}
}
}
package org.ah.rcmd
import org.apache.spark.{ SparkContext, SparkConf } object RDDtoMysql {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("RDDToMysql").setMaster("local")
val sc = new SparkContext(conf)
// 获取数据
val data = sc.parallelize(List(("Andy", "W1", "W2", "W3", "W4", "W5"), ("Cat", "W1", "W1", "W1", "W1", "W1")))
// 写入数据库
data.foreachPartition(Rdbms.setRcmdResult)
}
}

Spark+Scalar+Mysql的更多相关文章

  1. 使用Apache Spark 对 mysql 调优 查询速度提升10倍以上

    在这篇文章中我们将讨论如何利用 Apache Spark 来提升 MySQL 的查询性能. 介绍 在我的前一篇文章Apache Spark with MySQL 中介绍了如何利用 Apache Spa ...

  2. 记录一次spark连接mysql遇到的问题

    版权声明:本文为博主原创文章,未经博主允许不得转载 在使用spark连接mysql的过程中报错了,错误如下 08:51:32.495 [main] ERROR - Error loading fact ...

  3. [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子:

    [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子: mydf001=sqlContext.read.format("jdbc").o ...

  4. spark SQL学习(spark连接 mysql)

    spark连接mysql(打jar包方式) package wujiadong_sparkSQL import java.util.Properties import org.apache.spark ...

  5. spark练习--mysql的读取

    前面我们一直操作的是,通过一个文件来读取数据,这个里面不涉及数据相关的只是,今天我们来介绍一下spark操作中存放与读取 1.首先我们先介绍的是把数据存放进入mysql中,今天介绍的这个例子是我们前两 ...

  6. spark读写mysql

    spark读写mysql除官网例子外还要指定驱动名称 travels.write .mode(SaveMode.Overwrite) .format("jdbc") .option ...

  7. spark 存取mysql

    1.先上代码,存入mysql val spark = SparkSession.builder() .appName("jdbc") .getOrCreate() import s ...

  8. Spark操作MySQL,Hive并写入MySQL数据库

    最近一个项目,需要操作近70亿数据进行统计分析.如果存入MySQL,很难读取如此大的数据,即使使用搜索引擎,也是非常慢.经过调研决定借助我们公司大数据平台结合Spark技术完成这么大数据量的统计分析. ...

  9. 大数据项目实践:基于hadoop+spark+mongodb+mysql+c#开发医院临床知识库系统

    一.前言 从20世纪90年代数字化医院概念提出到至今的20多年时间,数字化医院(Digital Hospital)在国内各大医院飞速的普及推广发展,并取得骄人成绩.不但有数字化医院管理信息系统(HIS ...

随机推荐

  1. test pthread code

    #include <iostream> #include <pthread.h> using namespace std; ; void * add(void *); pthr ...

  2. 自己写的保证js顺序加载的方法

    var arr =["test1.js","test2.js","test3.js"] loadScripts:function(arr){ ...

  3. 序列化模块— json模块,pickle模块,shelve模块

    json模块 pickle模块 shelve模块 序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. # 序列化模块 # 数据类型转化成字符串的过程就是序列化 # 为了方便存储和网 ...

  4. react源码探索

    react核心部分为 虚拟dom对象 虚拟dom差异化算法 单向数据流渲染 组件生命周期 事件处理 1) 虚拟dom对象: reactDOM.render(args,element); 这个方法第一个 ...

  5. 绑定的jndi获得connection时,出的错,java.io.NotSerializableException

    求助:java.io.NotSerializableException 最近系统频繁出现Lookup error: java.io.WriteAbortedException: Writing abo ...

  6. 四:(之八_Linux压力测试工具stress)Dockerfile语法梳理和实践

    8.1 安装stress stress目前是在该目录下的可执行文件 --vm 创建几个进程 --vm-bytes 为每个进程分配多少内存 8.2 debug输出stress创建进程的过程 一直在创建有 ...

  7. nopcommerce 4.1 学习2 -插件之挂件

    先了解下nop4.1的一些插件有哪些类型: 1.支付插件   Nop.Plugin.Payments.PayPalStandard  Nop.Plugin.Payments.CheckMoneyOrd ...

  8. Mysql5.7实现主从复制、基于GTID的主从复制、并行复制

    (一.主从复制) 一.mysql主从复制原理    mysql的默认复制方式是主从复制.Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制, ...

  9. windows常用命令积累

    命令行可以对文件进行操作,copy 路径\文件名 路径\文件名,复制文件:move 路径\文件名 路径\文件名,移动文件:del 文件名,删除文件. cd与dir命令,dir命令显示当前目录下的文件及 ...

  10. oc语言的Foundation框架(学习笔记1)

    Foundation框架 1.Foundation框架介绍 框架是由许多类.方法.函数以及文档按照一定的规则组合的起来的集合. cocoa程序编写主要用到2个框架Foundation和Applicat ...