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 ...
随机推荐
- java截取字符串,第4位以后的字符串用*代替
public class F { public static void main(String[] args) { /**截取字符串,第4位以后的字符串用*代替*/ String s = " ...
- 【转载】Java Restful API 文档生成工具 smart-doc
谁说生成api文档就必须要定义注解? 谁说生成接口请求和返回示例必须要在线? 用代码去探路,不断尝试更多文档交付的可能性. 如果代码有生命,为什么不换种方式和它对话! 一.背景 没有背景.就自己做自己 ...
- linux远程管理常用命令
目标 关机/重启 shutdown 查看或配置网卡信息 ifconfig ping 远程登录和复制文件 ssh scp 01. 关机/重启 序号 命令 对应英文 作用 01 shutdown 选项 时 ...
- 第一章03 java 开发环境搭建
1. 首先,搭配java开发环境,安装(jdk:java 开发工具包) 2.安装下载:输入www.oracle.com.cn/indek.html (cn代表中文) 3.测试安装是否成功 (1)wi ...
- python基础——列表
Python列表脚本操作符 列表对 + 和 * 的操作符与字符串相似.+ 号用于组合列表,* 号用于重复列表. 如下所示: Python 表达式 结果 描述 len([1, 2, 3]) 3 长度 [ ...
- jar 包启动
java -Xms256m -Xmx512m -Xmn256m -jar /home/apps/video/video.jar --spring.profiles.active=test #!/bin ...
- Jsの练习-将 数组中值为0 的去掉,不为0的存入一个新的数组
要求:将 数组中值为0 的去掉,不为0的存入一个新的数组 代码如下: <!DOCTYPE html> <html lang="en"> <head&g ...
- Codeforces Round #309 (Div. 1) A(组合数学)
题目:http://codeforces.com/contest/553/problem/A 题意:给你k个颜色的球,下面k行代表每个颜色的球有多少个,规定第i种颜色的球的最后一个在第i-1种颜色的球 ...
- leetcode题解 1.TwoSum
1. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a ...
- TensorFlow安装教程---windows8.1
首先,第一个,下载,python3.6.4版本 64位 安装python,由于,我是window8.1,所以我遇到这样的问题 参考解决方案:https://answers.microsoft.com/ ...