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

相关文章

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

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

uva 575 Skew Binary(位运算)

求第一个以(2^(k+1)-1)为进制的数。 数据不大,可以直接搞。 代码: #include <stdio.h>#include <string.h>const int maxn = 100 + 5;int main(){char num[maxn];while (scanf("%s", num) == 1){if (num[0] == '0')break;int len =

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

遮罩,在指定元素上进行遮罩

废话不多说,直接上代码: ps:依赖 jquer.js 1.首先,定义一个 Overlay.js  代码如下: /*遮罩 Overlay js 对象*/function Overlay(options){//{targetId:'',viewHtml:'',viewWidth:'',viewHeight:''}try{this.state=false;//遮罩状态 true 激活,f

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

Java基础回顾系列-第六天-Java集合

Java基础回顾系列-第六天-Java集合 集合概述数组的弊端集合框架的优点Java集合关系图集合框架体系图java.util.Collection接口 List集合java.util.List接口java.util.ArrayListjava.util.LinkedListjava.util.Vector Set集合java.util.Set接口java.util.HashSetjava

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

力扣第347题 前K个高频元素

前言 记录一下刷题历程 力扣第347题 前K个高频元素 前K个高频元素 原题目: 分析 我们首先使用哈希表来统计数字出现的频率,然后我们使用一个桶排序。我们首先定义一个长度为n+1的数组,对于下图这个示例就是长度为7的数组。为什么需要一个长度为n+1的数组呢?假如说总共有三个数字都为1,那么我们需要把这个1放在数组下标为3的位置,假如说数组长度为n,对于这个例子就是长度为3,那么它的