mapPartitions函数会对每个分区依次调用分区函数处理,然后将处理的结果(若干个Iterator)生成新的RDDs。
mapPartitions与map类似,但是如果在映射的过程中需要频繁创建额外的对象,使用mapPartitions要比map高效的过。比如,将RDD中的所有数据通过JDBC连接写入数据库,如果使用map函数,可能要为每一个元素都创建一个connection,这样开销很大,如果使用mapPartitions,那么只需要针对每一个分区建立一个connection。
SparkConf conf =
new
SparkConf();
SparkSession session =
new
SparkSession.Builder()
.config(conf)
.appName(
"RunModifyiedFilm:shengjunyang@maoyan.com"
).master(
"local"
)
.getOrCreate();
jsc =
new
JavaSparkContext(session.sparkContext());