rdd的partition分区问题
来源:8-3 -实战之将统计结果写入到MySQL数据库中

KelvinChung
2020-03-08
result.foreachRDD(rdd => {
rdd.foreachPartition(partitionOfRecords => {
val connection = createConnection()
partitionOfRecords.foreach(record => {
val sql = "insert into wordcount(word, wordcount) values('" + record._1 + "'," + record._2 + ")"
connection.createStatement().execute(sql)
})
connection.close()
})
})
比如说一次输入, a b a a c,然后经过map跟reduce处理出来是(a,3),(b,1),(c,1),那请问老师怎么知道这个就是rdd中的一个partition呢(因为用到rdd.foreachPartition)?如果一次输入很大量的数据,也是这样分区的吗?
写回答
1回答
-
rdd的partition有几个地方相关。比如说:你读kafka的数据的时候,如果采用direct模式的话,那就是和你的kafka的partition数一样,如果中间你的算子没有可以调整分区数量。 如果你算子调整了,那就是调整后的partition数量。
032020-03-08
相似问题