我正在尝试使用Spark.read.jdbc从Oracle数据库读取数据。如果指定lowerbound,upperbound和numpartitions,则最后一个分区可能大于执行程序的内存。是否有一种方法可以不指定下限和上限(如sqoop)来进行numpartitions?
您可以通过在重载的DataFrameReader.jdbc()
方法中提供一堆查询谓词来定义自己的分区。
给出数字DataFrameReader.jdbc()
,包含诸如PK或UK的唯一值,并带有索引。索引对于性能而言是可选的。
由于数据自然分布在该列中,因此它将统一划分数据。
columnName