Spark+Scalar+Mysql
包: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的更多相关文章
- 使用Apache Spark 对 mysql 调优 查询速度提升10倍以上
在这篇文章中我们将讨论如何利用 Apache Spark 来提升 MySQL 的查询性能. 介绍 在我的前一篇文章Apache Spark with MySQL 中介绍了如何利用 Apache Spa ...
- 记录一次spark连接mysql遇到的问题
版权声明:本文为博主原创文章,未经博主允许不得转载 在使用spark连接mysql的过程中报错了,错误如下 08:51:32.495 [main] ERROR - Error loading fact ...
- [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子:
[Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子: mydf001=sqlContext.read.format("jdbc").o ...
- spark SQL学习(spark连接 mysql)
spark连接mysql(打jar包方式) package wujiadong_sparkSQL import java.util.Properties import org.apache.spark ...
- spark练习--mysql的读取
前面我们一直操作的是,通过一个文件来读取数据,这个里面不涉及数据相关的只是,今天我们来介绍一下spark操作中存放与读取 1.首先我们先介绍的是把数据存放进入mysql中,今天介绍的这个例子是我们前两 ...
- spark读写mysql
spark读写mysql除官网例子外还要指定驱动名称 travels.write .mode(SaveMode.Overwrite) .format("jdbc") .option ...
- spark 存取mysql
1.先上代码,存入mysql val spark = SparkSession.builder() .appName("jdbc") .getOrCreate() import s ...
- Spark操作MySQL,Hive并写入MySQL数据库
最近一个项目,需要操作近70亿数据进行统计分析.如果存入MySQL,很难读取如此大的数据,即使使用搜索引擎,也是非常慢.经过调研决定借助我们公司大数据平台结合Spark技术完成这么大数据量的统计分析. ...
- 大数据项目实践:基于hadoop+spark+mongodb+mysql+c#开发医院临床知识库系统
一.前言 从20世纪90年代数字化医院概念提出到至今的20多年时间,数字化医院(Digital Hospital)在国内各大医院飞速的普及推广发展,并取得骄人成绩.不但有数字化医院管理信息系统(HIS ...
随机推荐
- 跟随我在oracle学习php(6)
CSS,主要用于控制Web页面的外观.通过使用CSS样式设置页面的风格,可将页面的内容 与表现形式分离.css 层叠样式表美化页面配合html布局. 在当前可以浏览的网站当中,都存在着CSS样式代码 ...
- Android动画-View动画
View动画 Android动画分为三类:View动画,帧动画,和属性动画.帧动画也是View动画的一种. View动画的作用对象是View,之所以强调这一点是因为其作用对象有别于Android的另一 ...
- Unity调试模式设置辅助线是否可见
1.新建变量 //调试的标识(状态开关) public bool m_debug = true; 2.在画线方法中写 //如果非调试状态,则不再输出网格和立方体 if (!m_debug) { ret ...
- 一、JAVA变量类型:②局部变量
局部变量声明在方法.构造方法或者语句块中: public class Test{ public void pupAge(){ int age = 0; //定义age为方法pupAge中的局部变量,并 ...
- Putty查看生产环境下程序后台日志
双击桌面的putty.exe,然后选择session会话.登录用户.一般用户名为root. 登录成功之后在黑窗口敲以下命令行: cd /temp 到指定目录ls 查看该目录下文件tail -f n ...
- [Version Control]—— Git如何使用
Git是什么? Git是目前世界上最先进的分布式版本控制系统. 它没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上.既然每个人的电脑都有一 ...
- jmeter操作练习
1.登录: 2.用户定义变量 3.http请求默认值 这是登录里面的服务器名称或IP可以不用填(以上情况是当多个共用一个IP的时候,可以这样做) 4.配置文件下--CSV Data Set Confi ...
- Vxlan基础理解
一 . 为什么需要Vxlan 1. vlan的数量限制 4096个vlan远不能满足大规模云计算数据中心的需求 2. 物理网络基础设施的限制 基于IP子网的区域划分限制了需要二层网 ...
- 【Linux常用命令】
1. ps aux | grep nginx 使用场景:是想查看nginx的打印日志,又不知道nginx的日志路径. ps :是查看进程的命令.使用该命令 可以确定有哪些进程正在运行和运行的状态.进程 ...
- Windows+Linux双系统所导致的时间不一致问题的原因及解决方案
参考自:https://www.cnblogs.com/x_wukong/p/4401499.html 前几天在自己的windows10另外还装了一个Ubuntu,使用后发现windows时间一直不对 ...