spark连接Oracle数据库,Spark通过jdbc采用分区的方式从oracle读数据

spark通过jdbc可以从oracle中直接读取数据,返回dataframe。有时由于数据量较大,我们可以采用分区方式通过jdbc多线程并行从oracle中读取数据。- oracle中的数据如下TIME字段是年月,为字符串类型,ACCOUNT_BOOK为INT类型image.pngobject OraclePartitionReadTest {def main(args: Array[Strin...
摘要由CSDN通过智能技术生成

spark通过jdbc可以从oracle中直接读取数据,返回dataframe。有时由于数据量较大,我们可以采用分区方式通过jdbc多线程并行从oracle中读取数据。

- oracle中的数据如下

TIME字段是年月,为字符串类型,ACCOUNT_BOOK为INT类型

8fa1557d2143

image.png

object OraclePartitionReadTest {

def main(args: Array[String]): Unit = {

val spark = spark = SparkSession.builder()

.appName(appName)

.master("local")

.getOrCreate()

// 1. 通过jdbc从oracle中直接读取数据,不分区

val dfReadFromOra = spark.read.jdbc(url, "tableName", properties)

println(dfReadFromOra.count())

/* 2. 通过设定字段的条件来划分分区。

如下把TIME字段,按日期区间划分为两个子区间,[2018-01,2018-12]为一个区间,[2019-01,2019-12]为一个区间。定义一个字符串数组来存放区间,区间个数即为spark从oracle读取数据时的分区个数。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值