spark 存取mysql
1.先上代码,存入mysql
val spark = SparkSession.builder()
.appName("jdbc")
.getOrCreate()
import spark.implicits._
val pathcsv = "/user/xxx/private/moviecsv"
val csvdf = spark.read.format("csv")
.option("sep", ",")
.option("inferSchema", "true")
.option("header", "true")
.load(pathcsv) csvdf.write
.format("jdbc")
.mode(SaveMode.Overwrite)
.option("url", "jdbc:mysql://ip:port/database?useUnicode=true&characterEncoding=utf-8")
.option("dbtable", "database.table")
.option("user", "root")
.option("password", "")
.option("batchsize", "")
.option("createTableOptions", "engine=MyISAM")
.option("createTableColumnTypes", "Ratings varchar(200)")
.option("truncate", "true") .option("numPartitions", "") .save() spark.stop()
参数解释
url: 连接mysql 的url
user:登陆mysql的用户
password :登陆密码
dbtable: 要访问的数据库 点 表
batchsize : 当条数达到batchsize时会往mysql插入一次数据
truncate : 当savemode是 overwrite时,若dataframe 与原mysql 结构相同,则只truncate mysql,不会重新建表
numPartions : 访问mysql的并发数,注意:当dataframe的分区数小于numPartitions 时,并发数是dataframe的分区数,否则并发数是numPartitions
createTableOptions:建表时的一些额外选项,比如指定engine, "engine=MyISAM",源码中是这样处理createTableOptions 的val sql = s"CREATE TABLE $table ($strSchema) $createTableOptions"
createTableColumnTypes:可以用来替换默认的字段类型,比如name 字段默认是text 类型,可以手动指定为 “name varchar(200)”
2.spark 读取mysql
val jdbccdf = spark.read.format("jdbc")
.option("url", "jdbc:mysql://192.168.100.200:1234/data_store?useUnicode=true&characterEncoding=utf-8")
.option("dbtable", "data_store.movieaa")
.option("user", "root")
.option("password", "")
.option("fetchsize", "")
.option("truncate", "true")
.option("numPartitions", "")
.option("partitionColumn", "UserID")
.option("lowerBound", "")
.option("upperBound", "")
.load()
dbtable除了1 中的写法还可以是一个 query :option("dbtable", "(select * from data_store.movieaa where userid between 1000 and 2000) as tt")
partitionColumn:分区列,只支持数值类型,当此参数存在时,lowerBound 和upperBound 必须存在,bound 和numpartition 起到了分区的作用,bound 并不会去过滤数据
spark 存取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,Hive并写入MySQL数据库
最近一个项目,需要操作近70亿数据进行统计分析.如果存入MySQL,很难读取如此大的数据,即使使用搜索引擎,也是非常慢.经过调研决定借助我们公司大数据平台结合Spark技术完成这么大数据量的统计分析. ...
- 大数据项目实践:基于hadoop+spark+mongodb+mysql+c#开发医院临床知识库系统
一.前言 从20世纪90年代数字化医院概念提出到至今的20多年时间,数字化医院(Digital Hospital)在国内各大医院飞速的普及推广发展,并取得骄人成绩.不但有数字化医院管理信息系统(HIS ...
- spark 连接 mysql 数据库
在所有master和slave上也要在spark/conf/spark-conf.sh里面设置driver的classpath,解决编译找不到driver的问题 http://www.iteblog. ...
随机推荐
- 我遇到的WPF的坑
转自 林德熙Blog 本文:我遇到的WPF的坑 目录 单例应用在多实例用户无法使用 标记方法被使用 当鼠标滑过一个被禁用的元素时,让ToolTip 显示 获取设备屏幕数量 获取当前域用户 绑定资源文件 ...
- 防止jQuery .on多次绑定
jQuery off() 方法 $("button").click(function(){$("p").off("click");}); 参 ...
- SQL 去重 DISTINCT 语法
SQL SELECT DISTINCT语句 在表中可能会包含重复值.这并不成问题, 不过有时你也许希望仅仅列出不同(distinct)的值. 关键词DISTINCT 用于返回唯一不同的值 语法 SEL ...
- 让您的WinForm控件快速支持拖拽文件
实现原理:使用扩展方法. /// <summary> /// 控件扩展 /// </summary> public static class ControlExt { /// ...
- 阻止鼠标右键和F5刷新
//禁止刷新的事件发生 document.onkeydown = function(){ if(event.keyCode==116){ event.keyCode = 0; event.cancel ...
- ML-逻辑回归推导
认识 是一个经典的二元(y=0 或 y=1) 分类算法, 不是回归 输入特征还是线性回归, 输出是 [0,1] 的一个概率值, 其判别函数的形式为: \(P(y=1|x) = \frac {1}{1+ ...
- angular6 使用daterangepicker的注意事项
具体使用方法可参考这篇博客:https://blog.csdn.net/qq_43225030/article/details/84973086 需要注意的地方是,在dateRangePicker函数 ...
- NBU磁带库报错代码
Linux驱动报错"Sense Key"和"ASC and ASCQ"含义 1.Sense Keys Definitions 0x0 No sense 0x1 ...
- Windows:安装Python2.7、3.6与共存,安装pycharm
Windows:安装Python2.7.3.6与共存,安装pycharm 目录: 1.下载Python2.7.Python3.6 2.安装Python2.7 3.安装Python3.6 4.安装破解p ...
- Python基础A(执行方式---注释)
执行Python程序的两种方式 交互式(jupyter) 优点:运行一句,执行一句 缺点:关闭即消失 命令行式(pycharm) 优点:可以一直保存下去 缺点:全部写完才能调试bug 虽然txt问价可 ...