包: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. 跟随我在oracle学习php(6)

    CSS,主要用于控制Web页面的外观.通过使用CSS样式设置页面的风格,可将页面的内容 与表现形式分离.css  层叠样式表美化页面配合html布局. 在当前可以浏览的网站当中,都存在着CSS样式代码 ...

  2. Android动画-View动画

    View动画 Android动画分为三类:View动画,帧动画,和属性动画.帧动画也是View动画的一种. View动画的作用对象是View,之所以强调这一点是因为其作用对象有别于Android的另一 ...

  3. Unity调试模式设置辅助线是否可见

    1.新建变量 //调试的标识(状态开关) public bool m_debug = true; 2.在画线方法中写 //如果非调试状态,则不再输出网格和立方体 if (!m_debug) { ret ...

  4. 一、JAVA变量类型:②局部变量

    局部变量声明在方法.构造方法或者语句块中: public class Test{ public void pupAge(){ int age = 0; //定义age为方法pupAge中的局部变量,并 ...

  5. Putty查看生产环境下程序后台日志

    双击桌面的putty.exe,然后选择session会话.登录用户.一般用户名为root.  登录成功之后在黑窗口敲以下命令行: cd /temp  到指定目录ls 查看该目录下文件tail -f n ...

  6. [Version Control]—— Git如何使用

    Git是什么? Git是目前世界上最先进的分布式版本控制系统. 它没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上.既然每个人的电脑都有一 ...

  7. jmeter操作练习

    1.登录: 2.用户定义变量 3.http请求默认值 这是登录里面的服务器名称或IP可以不用填(以上情况是当多个共用一个IP的时候,可以这样做) 4.配置文件下--CSV Data Set Confi ...

  8. Vxlan基础理解

    一 . 为什么需要Vxlan   1. vlan的数量限制    4096个vlan远不能满足大规模云计算数据中心的需求   2. 物理网络基础设施的限制    基于IP子网的区域划分限制了需要二层网 ...

  9. 【Linux常用命令】

    1. ps aux | grep nginx 使用场景:是想查看nginx的打印日志,又不知道nginx的日志路径. ps :是查看进程的命令.使用该命令 可以确定有哪些进程正在运行和运行的状态.进程 ...

  10. Windows+Linux双系统所导致的时间不一致问题的原因及解决方案

    参考自:https://www.cnblogs.com/x_wukong/p/4401499.html 前几天在自己的windows10另外还装了一个Ubuntu,使用后发现windows时间一直不对 ...