Spark:使用partitionColumn选项读取数据库原理
代码:
val tbname = "TABLENAME"
val df = spark.read.format("jdbc").option("driver", "oracle.jdbc.driver.OracleDriver").option("url", "jdbc:oracle:thin:@10.18.2.3:1521:dbname").option("user", "***").option("password", "***").option("dbtable", s"(select t.*, ROWNUM rownum__rn from ${tbname} t) b").option("fetchsize", 100000).option("partitionColumn", "rownum__rn").option("lowerBound", 1).option("upperBound", 4000000).option("numPartitions", 2).load().drop("rownum__rn")
伪代码,仅帮助理解:
# 情况一:
if partitionColumn || lowerBound || upperBound || numPartitions 有任意选项未指定,报错
# 情况二:
if numPartitions == 1 忽略这些选项,直接读取,返回一个分区
# 情况三:
if numPartitions > 1 && lowerBound > upperBound 报错
# 情况四:
numPartitions = min(upperBound - lowerBound, numPartitions)
if numPartitions == 1 同情况二
else 返回numPartitions个分区
delta = (upperBound - lowerBound) / numPartitions
分区1数据条件:partitionColumn <= lowerBound + delta || partitionColumn is null
分区2数据条件:partitionColumn > lowerBound + delta && partitionColumn <= lowerBound + 2 * delta
...
最后分区数据条件:partitionColumn > lowerBound + n*delta
转载于:https://www.cnblogs.com/xuejianbest/p/10284989.html
Spark:使用partitionColumn选项读取数据库原理相关推荐
- Spark采用分区方式读取数据库时partitionColumn, lowerBound, upperBound, numPartitions的理解与验证
关键概念 partitionColumn:分区字段,需要是数值类的(partitionColumn must be a numeric column from the table in questio ...
- 数据库原理与应用(SQL Server)笔记 第十一章 游标
目录 前言 一.游标的定义 二.游标的声明 三.游标的打开 四.游标的使用 五.游标的关闭 六.游标的删除 七.静态游标和动态游标 结语 前言 本章内容将从六个方面介绍关于游标的知识,分别是其定义.声 ...
- 《数据库原理实验指导书》
<数据库原理实验指导书> 河南科技大学软件学院 目录 实验规则 基本实验方法 实验环境 实验一 数据定义 实验二 数据更新 实验三 数据查询-简单查询和连接查询 实验四 数据查询-分组查询 ...
- 【SQL语言】数据库原理与设计
目录 第五章 SQL语言 5.3 简单查询(对一个表) 5.4 连接查询 5.5 聚集函数 5.6 嵌套查询 5.7 集合运算 5.8 视图的创建和使用 5.9 更新操作 第六章 高级SQL语言 6. ...
- 沈师 数据库原理 PTA 选择题答案
无答案版链接:https://blog.csdn.net/a2272062968/article/details/117712085 下面对数据模型的不正确叙述是( ). A. 逻辑层次上的数据模型有 ...
- 数据库原理分析(强烈推荐)
一提到关系型数据库,我禁不住想:有些东西被忽视了.关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata .但很少有文章讲解数据库是如何工作的.你可以自己谷歌/百度 ...
- mysql数据库原理分析
一提到关系型数据库,我禁不住想:有些东西被忽视了.关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata .但很少有文章讲解数据库是如何工作的.你可以自己谷歌/百度 ...
- MS SQL Server数据库原理
MS SQL Server数据库原理 一. 数据库基本概念 数据库系统(DBS):采用数据库技术的计算机系统,由数据库(数据).数据库管理系统(软件).数据库管理员(人员).硬件平台(硬件)和软件平台 ...
- 数据库原理及应用(详细)
数据库原理及应用 Database Principles and Applications -JAING 第一章 绪论: 1.1术语 1.数据(Data) 数据是数据库中存储的基本对象.定义为描述事务 ...
最新文章
- 笔记-项目合同管理-索赔的处理
- 让系统尽量不用swap
- path:path在路由中的使用
- android--超级手电筒的开发记录
- (71)Verilog HDL时间度量系统函数:$time
- 故宫开通首个5G基站 首个5G高校在上海建成启用...
- dubbo+zookeeper与 eureka的区别
- NYOJ242 - 计算球体积
- Dubbo -- 系统学习 笔记 -- 示例 -- 只订阅
- 搭建一个简单Git服务器
- 【sklearn第二十五讲】交叉验证
- 百度地图SDK的使用
- 空间梁单元C语言有限元编程,有人会有限元编程吗
- Python-torch.optim优化算法理解之optim.Adam()
- mysql 根据经纬度查询范围点
- 数据分析与AI(七)傅里叶对登月图片降噪/scipy库对图片进行处理/
- 分子模拟的理论与实践_活动回顾 | 信息学院模拟党支部实践成果汇报会
- 【机器学习】EM算法
- Delphi 函数使用技巧
- 死亡细胞1.9最新辅助
热门文章
- 通过Chrome模拟和调试网速慢的情况来限制一些P2P视频网站上传速度占满的情况...
- where 1=1和 0=1 的作用
- webservice ssl 2 下载webservice服务端所有的证书
- NSFetchedResultsController和UITableView显示CoreData的数据时用relationship分组的方法
- JSP下Forward和Redirect的区别分析
- 常见的数据库管理系统排名(DBMS)
- sleuth微服务整合Zipkin
- MyBatis创建SqlSession-怎么拿到一个SqlSessionTemplate?
- logback 的 access 模块
- Ant Design入门之介绍