前一篇文章pyspark连接oracle中详细讲述了初步连接Oracle的方法,这种连接方式每次只使用一个RDD分区,即numPartitions默认为1.这种方式当表特别大的时候,很可能出现OOM.
pyspark提供两种对数据库进行分区读取的方式
方法一:指定数据库字段的范围
之前的方式是:
empDF = spark.read \
.format("jdbc") \
.option("url", "jdbc:oracle:thin:@//hostname:portnumber/SID") \
.option("dbtable", "hr.emp") \
.option("user", "db_user_name") \
.option("password", "password") \
.option("driver", "oracle.jdbc.driver.OracleDriver") \
.load()
现在需要增加partitionColumn, lowerBound, upperBound, numPartitions这几个属性值
empDF = spark.read \
.format("jdbc") \
.option("url", "jdbc:oracle:thin:@//host