spark中map和mapPartitions算子的区别

区别:

  1、map是对rdd中每一个元素进行操作

  2、mapPartitions是对rdd中每个partition的迭代器进行操作


mapPartitions优点:

  1、若是普通map,比如一个partition中有一万条数据,那么function要执行一万次,而使用mapPartions,一个task只执行一次function,function一次接收所有数据,只执行一次,性能高

  2、若在map中需要频繁创建额外对象(如将rdd的数据通过jdbc写入数据库,map需要为每条数据创建一个链接,mapPartions只是为一个partition创建一条链接)

缺点:

  mapPartions可能发生OOM内存溢出,而map不会,因为一个partition可能会很大

猜你喜欢

转载自www.cnblogs.com/dretrtg/p/12687246.html