参数解释
在使用jdbc rdd的时候,我们一块需要传递7个参数
val data = new JdbcRDD(
sc,
getConnection,
"select * from table where id >= ? and id <= ?",
1,
10,
2,
flatValue
)
sc: sparkcontext
getConnection: 创建链接的函数
"select * from table where id >= ? and id <= ?": sql语句
1: 要取数据的 id 最小行
10: 要取数据的 id 最大行号
2: 分区数
flatValue: 一个将 ResultSet 转化为需要类型的方法
关于jdbc rdd 的分区
override def getPartitions: Array[Partition] = {
// bounds are inclusive, hence the + 1 here and - 1 on end
//获取上界和下界之间的数据宽度
val length = BigInt(1) + upperBound - lowerBound
(0 until numPartitions).map { i =>
val start = lowerBound + ((i * length) / numPartitions)
//获取每一次偏移的起始位置
val end = lowerBound + (((i + 1) * leng