PySpark实战:flatMap操作

来自CloudWiki
跳转至: 导航搜索

介绍

flatMap操作是一个变换算子,

对RDD中每个元素按照func函数定义的处理逻辑进行操作,

并对结果进行扁平化处理。

代码

import findspark
findspark.init()
##############################################
from pyspark.sql import SparkSession
spark = SparkSession.builder \
        .master("local[1]") \
        .appName("RDD Demo") \
        .getOrCreate();
sc = spark.sparkContext
#############################################
rdd = sc.parallelize([3, 4, 5])
fm= rdd.flatMap(lambda x: range(1, x))
#[1, 2, 1, 2, 3, 1, 2, 3, 4]
print(fm.collect())
fm = rdd.flatMap(lambda x: [(x, x), (x, x)])
#[(3, 3), (3, 3), (4, 4), (4, 4), (5, 5), (5, 5)]
print(fm.collect())
##############################################
sc.stop()
~

输出

[1, 2, 1, 2, 3, 1, 2, 3, 4]

[(3, 3), (3, 3), (4, 4), (4, 4), (5, 5), (5, 5)]