RDD的map和flatMap操作

RDD的map() 接收一个函数,把这个函数用于 RDD 中的每个元素,将函数的返回结果作为结果RDD 中对应元素的结果。
flatMap()对RDD每个输入元素生成多个输出元素,和 map() 类似,我们提供给 flatMap() 的函数被分别应用到了输入 RDD 的每个元素上。不 过返回的不是一个元素,而是一个返回值序列的迭代器。输出的 RDD 倒不是由迭代器组 成的。我们得到的是一个包含各个迭代器可访问的所有元素的 RDD。


import sys

from pyspark import SparkContext

if __name__ == "__main__":
    master = "local"
    if len(sys.argv) == 2:
        master = sys.argv[1]
    try:
        sc.stop() 
    except:
        pass
    sc = SparkContext(master, "WordCount")
    lines = sc.parallelize(["pandas", "i like pandas"])
    result = lines.flatMap(lambda x: x.split(" "))
    print(result.collect())
    result = lines.map(lambda x: x.split(" "))
    print(result.collect())

结果:

['pandas', 'i', 'like', 'pandas']
[['pandas'], ['i', 'like', 'pandas']]

你可能感兴趣的:(RDD的map和flatMap操作)