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 ...
随机推荐
- CCF关于NOIP竞赛程序提交的管理规则
在NOIP复赛中,NOI各省组织单位必须严格遵循CCF<关于NOIP数据提交格式的说明>的规范在竞赛结束后规定时间内向CCF提交本赛区所有参赛选手的程序. 为竞赛的公平以及赛后按时完成竞赛 ...
- Servlet过滤器实现访客人数统计
第一. Servlet的创建和配置 1. 创建一个Servlet需要实现javax.servlet.Filter接口,同时实现Filter的3个方法. 第一个方法时过滤器中的 ...
- Python基础02_基本数据类型_以及while
基本数据类型: 字符串: 字符串可以相加, 表示连接; 可以将字符串乘以某个数,表示将此字符串复制多少次. 数: 数的加减乘除取余等. 需要注意的是两个乘号**和两个除号/ / python2中的除法 ...
- 蓝牙协议分析(4)_IPv6 Over BLE介绍
1. 前言 蓝牙是个奇葩的家伙:它总是以后来者的身份出现,很喜欢打仗,而且还不落下风(有点像某讯的风格).90年代末期和Wi-Fi的无线标准之争如此,当前和802.15.4系(ZigBee.RF4CE ...
- License控制解决方案
当我们写完一个软件以后一般都会牵扯到软件控制,那么控制版本的原理是什么呢?其实就是在程序中添加了一段经过自己编写算法(这个算法可以是简单的公式运算,也可以是复杂的结合硬件的绑定方式),将形成的序列号注 ...
- CentOS 6.9搭建CDH 5.12.0集成环境
Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机.Hadoop.Hive.Spark等服务的安装配置管理做了极大简化. ...
- linux下不能拼通www.baidu.com
1.打开虚拟机,通过命令修改内容如下 vi /etc/sysconfig/network-scripts/ifcfg-eth0 2.将信息修改如下: 3.ping www.baidu.com 查看是否 ...
- Web.xml详解分析
一.首先了解项目加载的优先级 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter. 最终得出的结 ...
- PTA——洗牌
PTA 7-43 Shuffling Machine #include<stdio.h> int main() { int i,n,*result; scanf("%d" ...
- 隔离级别简介 (mysql)
隔离级别:一个事务必须与由其他事务进行的资源或数据更改相隔离的程度.隔离级别从允许的并发副作用(例如,脏读或虚拟读取)的角度进行描述. 定义 编辑 事务指定一个隔离级别,该隔离级别定义一个事务必须与由 ...