spark通过jdbc读取Oracle,当数据量很大的时候会出现两个问题:
- 读取数据异常缓慢,甚至卡死
- 大表中进行操作也会出现OOM的问题
调优
常规的读取数据库的方式如下
ods_bdz = spark.read.format(“jdbc”)
.option(“url”, “jdbc:oracle:thin:@”+dbstring)
.option(“dbtable”, “ODS_BDZ”)
.option(“user”, dbuser)
.option(“password”, dbpasswd)
.load()
常规jdbc读取表的时候只有一个分区在执行,也就是只有一个excutor在工作,没有把spark并行操作的特性发挥出来
通过查阅sparksql官方文档&#