代码:

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选项读取数据库原理相关推荐

  1. Spark采用分区方式读取数据库时partitionColumn, lowerBound, upperBound, numPartitions的理解与验证

    关键概念 partitionColumn:分区字段,需要是数值类的(partitionColumn must be a numeric column from the table in questio ...

  2. 数据库原理与应用(SQL Server)笔记 第十一章 游标

    目录 前言 一.游标的定义 二.游标的声明 三.游标的打开 四.游标的使用 五.游标的关闭 六.游标的删除 七.静态游标和动态游标 结语 前言 本章内容将从六个方面介绍关于游标的知识,分别是其定义.声 ...

  3. 《数据库原理实验指导书》

    <数据库原理实验指导书> 河南科技大学软件学院 目录 实验规则 基本实验方法 实验环境 实验一 数据定义 实验二 数据更新 实验三 数据查询-简单查询和连接查询 实验四 数据查询-分组查询 ...

  4. 【SQL语言】数据库原理与设计

    目录 第五章 SQL语言 5.3 简单查询(对一个表) 5.4 连接查询 5.5 聚集函数 5.6 嵌套查询 5.7 集合运算 5.8 视图的创建和使用 5.9 更新操作 第六章 高级SQL语言 6. ...

  5. 沈师 数据库原理 PTA 选择题答案

    无答案版链接:https://blog.csdn.net/a2272062968/article/details/117712085 下面对数据模型的不正确叙述是( ). A. 逻辑层次上的数据模型有 ...

  6. 数据库原理分析(强烈推荐)

    一提到关系型数据库,我禁不住想:有些东西被忽视了.关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata .但很少有文章讲解数据库是如何工作的.你可以自己谷歌/百度 ...

  7. mysql数据库原理分析

    一提到关系型数据库,我禁不住想:有些东西被忽视了.关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata .但很少有文章讲解数据库是如何工作的.你可以自己谷歌/百度 ...

  8. MS SQL Server数据库原理

    MS SQL Server数据库原理 一. 数据库基本概念 数据库系统(DBS):采用数据库技术的计算机系统,由数据库(数据).数据库管理系统(软件).数据库管理员(人员).硬件平台(硬件)和软件平台 ...

  9. 数据库原理及应用(详细)

    数据库原理及应用 Database Principles and Applications -JAING 第一章 绪论: 1.1术语 1.数据(Data) 数据是数据库中存储的基本对象.定义为描述事务 ...

最新文章

  1. 笔记-项目合同管理-索赔的处理
  2. 让系统尽量不用swap
  3. path:path在路由中的使用
  4. android--超级手电筒的开发记录
  5. (71)Verilog HDL时间度量系统函数:$time
  6. 故宫开通首个5G基站 首个5G高校在上海建成启用...
  7. dubbo+zookeeper与 eureka的区别
  8. NYOJ242 - 计算球体积
  9. Dubbo -- 系统学习 笔记 -- 示例 -- 只订阅
  10. 搭建一个简单Git服务器
  11. 【sklearn第二十五讲】交叉验证
  12. 百度地图SDK的使用
  13. 空间梁单元C语言有限元编程,有人会有限元编程吗
  14. Python-torch.optim优化算法理解之optim.Adam()
  15. mysql 根据经纬度查询范围点
  16. 数据分析与AI(七)傅里叶对登月图片降噪/scipy库对图片进行处理/
  17. 分子模拟的理论与实践_活动回顾 | 信息学院模拟党支部实践成果汇报会
  18. 【机器学习】EM算法
  19. Delphi 函数使用技巧
  20. 死亡细胞1.9最新辅助

热门文章

  1. 通过Chrome模拟和调试网速慢的情况来限制一些P2P视频网站上传速度占满的情况...
  2. where 1=1和 0=1 的作用
  3. webservice ssl 2 下载webservice服务端所有的证书
  4. NSFetchedResultsController和UITableView显示CoreData的数据时用relationship分组的方法
  5. JSP下Forward和Redirect的区别分析
  6. 常见的数据库管理系统排名(DBMS)
  7. sleuth微服务整合Zipkin
  8. MyBatis创建SqlSession-怎么拿到一个SqlSessionTemplate?
  9. logback 的 access 模块
  10. Ant Design入门之介绍