Rdds基本操作Transformation,逐元素,map,filter,flatMap,集合运算

本文主要是介绍Rdds基本操作Transformation,逐元素,map,filter,flatMap,集合运算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Rdds基本操作Transformation

转换,从之前的RDD构建一个新的RDD,map操作

逐元素map,接受一个函数,应用在RDD每一个元素,并返回一个新的RDD

val lines = sc.parallelize(Array("hello","spark","hello","world","!"))      测试时候使用,从已有集合中构造一个RDD

lines.foreach(println)  打印出每一行,5个元素分为了5个分区  hello  spark

val line2 = lines.map(word=>(word,1))    在每个元素后面加1

lines2.foreach(println)     (hello,1)   (spark,1)


filter()

接受函数,返回只包含满足filter函数的新RDD

val line3 = lines.filter(word=>word.contains("hello"")

lines3.foreach(println)          hello hello


flatMap()

对每个输入元素,输出多个输出元素

压扁,将RDD元素压扁后返回一个新的RDD

val inputs = sc.textFile("/home/maixia/soft/helloSpark.txt")

inputs.foreach(println)                      hello!        hello spark         hello world

val lines = inputs.flatMap(line=>line.split(" "))

line代表每一行,空格分割;将3行的6个元素压成一起

lines.foreach(println)          hellosparkhelloworldhello!

val lines2 = lines.map(word=>(word,1))

line2.foreach(print)    (hello,1)  (spark,1)


Rdds基本操作Transformation

集合运算,并集交集

val rdd1 = sc.parallelize(Array(("coffe","coffe","panda","monkey","tea"))

rdd1.foreach(print)                                              coffe coffe panda  monkey tea

val rdd2 = sc.parallelize(Array("coffe","monkey","kitty"))

rdd2.foreach(print)             coffe  monkey kitty

val rdd_distinct = rdd1.distinct()  去重

rdd_distinct.foreach(print)     coffe panda  monkey tea

val rdd_union=rdd1.union(rdd2)  不去重并集   coffe coffe panda  monkey tea  coffe  monkey kitty

val rdd_inter=rdd1.intersection(rdd2)  交集    monkey coffe

val rdd_sub=rdd1.substract(rdd2)     tea  panda    在rdd1中有,rdd2没有的













这篇关于Rdds基本操作Transformation,逐元素,map,filter,flatMap,集合运算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127591

相关文章

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

Java中List转Map的几种具体实现方式和特点

《Java中List转Map的几种具体实现方式和特点》:本文主要介绍几种常用的List转Map的方式,包括使用for循环遍历、Java8StreamAPI、ApacheCommonsCollect... 目录前言1、使用for循环遍历:2、Java8 Stream API:3、Apache Commons

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

基于Redis有序集合实现滑动窗口限流的步骤

《基于Redis有序集合实现滑动窗口限流的步骤》滑动窗口算法是一种基于时间窗口的限流算法,通过动态地滑动窗口,可以动态调整限流的速率,Redis有序集合可以用来实现滑动窗口限流,本文介绍基于Redis... 滑动窗口算法是一种基于时间窗口的限流算法,它将时间划分为若干个固定大小的窗口,每个窗口内记录了该时间

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi