美文网首页
mapPartitions 使用

mapPartitions 使用

作者: 枫隐_5f5f | 来源:发表于2019-06-18 09:23 被阅读0次

Spark中的map函数是将每个rdd都进行自定义函数处理
mapPartitions则是将多个rdd进行分区,对每个分区内部的rdd进行自定义函数的处理

mapPartitions常用于需要多次加载外部文件的情况下,若此时仍然使用map函数 那么对于每条记录都需要进行文件读取加载,比较费时费性能

示例

from pyspark.sql import SparkSession
from pyspark import SparkConf,SparkContext

def map_func(row):
    print ("====")
    re = row*2
    return re

def mapPartition_func(part):
    print ("====")
    for row in part:
        re = row*2
        yield re
    return re

conf = SparkConf().setAppName("test")
sc = SparkContext(conf=conf)

a = sc.parallelize([1,2,3,4,5],5)
re = a.map(map_func)
for line in re.collect():
    print (line)

re = a.mapPartitions(mapPartition_func)
for line in re.collect():
    print (line)

相关文章

网友评论

      本文标题:mapPartitions 使用

      本文链接:https://www.haomeiwen.com/subject/xulxqctx.html