MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

RDD算子(4)—— flatMap算子

2025-01-09 13:08 huorong 精选文章 4 ℃ 0 评论

flatMap算子

和map算子类似,它通过函数func将RDD分区数据转换为新的RDD分区数据,只不过它还会额外的将处理后的RDD所有集合数据进行合并,最终只有一个分区。


题目要求

使用flatMap算子,将RDD的数据([1,2,3],[4,5,6],[7,8,9])合并。


代码实现

# -*- coding: UTF-8 -*-
from pyspark import SparkContext

if __name__ == "__main__":
    # 1.初始化 SparkContext,该对象是 Spark 程序的入口
    sc = SparkContext("local","flatMap app")

    # 2.创建一个[[1, 2, 3], [4, 5, 6], [7, 8, 9]] 的列表List
    ls = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

    # 3.通过 SparkContext 并行化创建 rdd
    rdd = sc.parallelize(ls)

    # 4.使用rdd.collect() 收集 rdd 的元素。
    print(rdd.collect())
    """
        使用 flatMap 算子,将 rdd 的数据 ([1, 2, 3], [4, 5, 6], [7, 8, 9]) 按照下面的规则进行转换操作,规则如下:
        需求:
            合并RDD的元素,例如:
                            ([1,2,3],[4,5,6])  -->  (1,2,3,4,5,6)
                            ([2,3],[4,5],[6])  -->  (1,2,3,4,5,6)
        """
    # 5.使用 flatMap 算子完成以上需求
    rdd2 = rdd.flatMap(lambda x:x)

    # 6.使用rdd.collect() 收集完成 flatMap 转换的元素
    print(rdd2.collect())

    # 7.停止 SparkContext
    sc.stop()

Tags:java8 flatmap

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言