问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

RDD转化操作详解:map、filter、flatMap

创作时间:
作者:
@小白创作中心

RDD转化操作详解:map、filter、flatMap

引用
简书
1.
https://www.jianshu.com/p/fb7034bbdf0d

filter()

filter()函数接收一个函数作为参数,将RDD中满足该函数条件的元素放入新的RDD中。

val input = sc.parallelize(List(1,2,3,3))
input.filter(x => x!=1).foreach(println)

map()

map()函数接收一个函数作为参数,将这个函数应用于RDD的每一个元素,并将函数的返回结果作为结果RDD中的元素值。map()函数的返回值类型不需要与输入类型一致,因此可以通过map()函数进行很多操作,比如从一个字符串中筛选特定字符,或对各个数字进行求值计算。

val input = sc.parallelize(List(1,2,3,3))
input.map(x => x*x).foreach(println)

Map() 与 filter() 区别

flatMap()

flatMap()函数接收一个函数作为参数,将函数应用在每一个元素上,返回值序列的迭代器,最终得到一个包含各个迭代器可访问的所有元素的RDD。我们经常使用flatMap()函数进行行转列的操作(拍扁)。

val input = sc.parallelize(List("hello scala","hello spark","hello study"))
input.flatMap(line => line.split(" ")).foreach(println)

map() 与 flatMap() 区别

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号