Spack 内置函数
1、Map函数:通过函数传递源的每个元素,并形成新的分布式数据集。
%spark
#并行化集合生成RDD
var data = sc.parallelize(List(10,20,30))
%输出结果
data.collect
%应用map函数并传递表达式
var mapFunc = data.map(x => x+10)
mapFunc.collect
输出:Array[Int] = Array(20, 30, 40)
flatMap: 原RDD中的每一个元素,对应于新RDD里面的一个迭代器。案例 : 将RDD的每个字符串按照逗号进行分割,输出结果。
val flatMapRdd = dataRdd.flatMap(str => str.split(","))
2、Filter函数:返回一个新数据集,该数据集是通过选择函数返回true
的源元素而形成的。因此,它仅检索满足给定条件的元素。
#过滤掉35
%spark
var data = sc.parallelize(List(10,20,35,40))
var filterFunc = data.filter(x => x!=35)
filterFunc.collect 输出:Array[Int] = Array(10, 20, 40)
3、count函数:返回数据集中存在的元素个数
%spark
var data = sc.parallelize(List(1,2,3,4,5))
var countFunc = data.count() 输出:5
4、Distinct函数:返回提供的数据集中的不同元素。
%spark
var data = sc.parallelize(List(10,10,20,30,40))
var distFunc = data.distinct()
distFunc.collect
5、Union函数:返回一个新数据集,其中包含不同数据集中存在的元素组合。
%spark
var data1 = sc.parallelize(List(10,20))
var data2 = sc.parallelize(List(30,40))
var unionFunc = data1.union(data2)
unionFunc.collect 输出:Array[Int] = Array(10, 20, 30, 40)
6、Intersection函数:返回一个新数据集,其中包含不同数据集中存在的元素的交集
%spark
var data1 = sc.parallelize(List(10,20,30))
var data2 = sc.parallelize(List(30,40))
var IntersectionFunc = data1.intersection(data2)
IntersectionFunc.collect 输出:Array(30)
7、Cartesian函数:生成两个数据集的笛卡尔积,并返回所有可能的对组合。一个数据集的每个元素与另一个数据集的每个元素配对。
%spark
var data1 = sc.parallelize(List(1,2,3))
var data2 = sc.parallelize(List(3,4,5))
var cartesianfunc = data1.cartesian(data2)
cartesianfunc.collect 输出:Array[(Int, Int)] = Array((1,3), (1,4), (1,5), (2,3), (3,3), (2,4), (2,5), (3,4), (3,5))
8、sortByKey函数:维护元素的顺序。它接收键值对(K,V)
作为输入,按升序或降序对元素进行排序,并按顺序生成数据集。
%spark
var data = sc.parallelize(Seq(("C",3),("B",2),("D",4),("A",1),("E",5)))
data.collect
#sortByKey默认传入的参数是true,升序的
var sortFun = data.sortByKey(false)
sortFun.collect 输出:Array[(String, Int)] = Array((E,5), (D,4), (C,3), (B,2), (A,1))
9、groupByKey函数:是一种聚合操作,输入(k,value),根据k值进行分类
%spark
var data = sc.parallelize(Seq(("C",3),("C",3),("C",2),("D",4),("A",1),("E",5)))
data.collect
var groupFunc = data.groupByKey()
groupFunc.collect 输出:Array[(String, Iterable[Int])] = Array((D,CompactBuffer(4)), (A,CompactBuffer(1)), (E,CompactBuffer(5)), (C,CompactBuffer(3, 3, 2)))
10、reduceByKey函数:类似于的groupByKey聚合函数,但groupByKey中包含大量shuffle操作,而reduceByKey则能提升性能,因为它不必发送pairRDD中的所有元素,会使用本地合并器先在本地完成基本的聚合操作(先在本地根据key值合并value),然后发送结果元素。
%spark
var data = sc.parallelize(Seq(("C",3),("C",3),("C",2),("D",4),("A",1),("E",5)))
#需要传入表达式
var reduceFunc = data.reduceByKey((value,x) => (value + x))
reduceFunc.collect 输出:Array[(String, Int)] = Array((D,4), (A,1), (C,8), (E,5))
11、cogroup函数:对不同的数据集执行,比方说,(K,V)和(K,W)并返回(K,(Iterable,Iterable))
元组的数据集。此操作也称为groupWith
%spark
var data1 = sc.parallelize(Seq(("A",1),("B",2),("C",3)))
var data2 = sc.parallelize(Seq(("B",4),("C",5),("D",6)))
var cogroupFun = data1.cogroup(data2)
cogroupFun.collect 输出:Array[(String, (Iterable[Int], Iterable[Int]))] = Array((B,(CompactBuffer(2),CompactBuffer(4))), (D,(CompactBuffer(),CompactBuffer(6))), (A,(CompactBuffer(1),CompactBuffer())), (C,(CompactBuffer(3),CompactBuffer(5))))
12、First函数:始终返回数据集的第一个元素。它类似于take(1)
。
%spark
var data = sc.parallelize(List(10,20,30))
data.first() 输出:Int = 10
13、take函数:它接收一个整数值(比方说,n)作为参数,并返回数据集的前n
个元素的数组。
%spark
var data = sc.parallelize(List(10,20,30))
data.take(2) 输出:Array[Int] = Array(10, 20)
14、reduce函数:将RDD中元素前两个传给输入函数,产生一个新的return值,新产生的return值与RDD中下一个元素(第三个元素)组成两个元素,再被传给输入函数,直到最后只有一个值为止。
val c = sc.parallelize(1 to 10)
c.reduce((x, y) => x + y)//结果55
15、substract : 移除一个RDD中的内容。例如:移除RDD1中的RDD2
val substractRDD = scalaRDD1.subtract(scalaRDD2)
16、sample: 对RDD进行采样, 传入的第一个参数是是否进行替换,第二个参数是采样的比例(返回的结果是随机的)
案例 : 在不替换的前提下,抽取RDD 10%的数据
val sampleRDD = scalaRDD1.sample(false, 0.1)
Spack 内置函数的更多相关文章
- Entity Framework 6 Recipes 2nd Edition(11-12)译 -> 定义内置函数
11-12. 定义内置函数 问题 想要定义一个在eSQL 和LINQ 查询里使用的内置函数. 解决方案 我们要在数据库中使用IsNull 函数,但是EF没有为eSQL 或LINQ发布这个函数. 假设我 ...
- Oracle内置函数:时间函数,转换函数,字符串函数,数值函数,替换函数
dual单行单列的隐藏表,看不见 但是可以用,经常用来调内置函数.不用新建表 时间函数 sysdate 系统当前时间 add_months 作用:对日期的月份进行加减 写法:add_months(日期 ...
- python内置函数
python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...
- DAY5 python内置函数+验证码实例
内置函数 用验证码作为实例 字符串和字节的转换 字符串到字节 字节到字符串
- python之常用内置函数
python内置函数,可以通过python的帮助文档 Build-in Functions,在终端交互下可以通过命令查看 >>> dir("__builtins__&quo ...
- freemarker内置函数和用法
原文链接:http://www.iteye.com/topic/908500 在我们应用Freemarker 过程中,经常会操作例如字符串,数字,集合等,却不清楚Freemrker 有没有类似于Jav ...
- set、def、lambda、内置函数、文件操作
set : 无序,不重复,可以嵌套 .add (添加元素) .update(接收可迭代对象)---等于批量 添加 .diffrents()两个集合不同差 .sysmmetric difference( ...
- SQL Server 内置函数、临时对象、流程控制
SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...
- Python-Day3知识点——深浅拷贝、函数基本定义、内置函数
一.深浅拷贝 import copy #浅拷贝 n1={'k1':'wu','k2':123,'k3':['carl',852]} n2=n1 n3=copy.copy(n1) print(id(n1 ...
随机推荐
- Unity——ShaderLab实现玻璃和镜子效果
在这一篇中会实现会介绍折射和反射,以及菲尼尔反射:并且实现镜子和玻璃效果: 这里和之前不同的地方在于取样的是一张CubeMap: demo里的cubemap使用的一样,相机所在位置拍出来的周围环境图: ...
- 一键抠除路人甲,昇腾CANN带你识破神秘的“AI消除术”
摘要:都说人工智能改变了生活,你感觉到了么?AI的魔力就在你抠去路人甲的一瞬间来到了你身边.今天就跟大家聊聊--神秘的"AI消除术". 引语 旅途归来,重温美好却被秀丽河山前的路人 ...
- MongoDB学习 - 简单使用
1.项目引入pom依赖 <!-- mongodb --><dependency> <groupId>org.springframework.boot</gro ...
- CentOS 7 如何清空文件内容
https://www.cnblogs.com/zqifa/p/linux-vim-4.html 方法1.在非编辑状态下使用快捷键gg跳至首行头部,再使用dG即可清空,或 输入"%d&quo ...
- tomcat启动卡在了 At least one JAR was scanned for TLDs yet contained no TLDs 的根本原因与解决办法
1.前言 有时候服务器开启时启动不了,卡在了 org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned fo ...
- 第10组 Alpha冲刺 (6/6)
1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/p/14008187.html ·作业博客:https://edu.cnblogs.co ...
- Go语言系列之反射
变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息. 值信息:程序运行过程中可动态变化的. 反射介绍 反射是指在程序运行期对程序本身进行访问和修改的能力.程序在编译时,变量 ...
- LINUX学习-Mysql集群-一主多从
新建一台服务器 192.168.88.40 yum -y install mysql mysql-server 编辑etc下的配置文件 vim /etc/my.cnf 输入 bin-log=mysql ...
- 使用Crossplane构建专属PaaS体验:Kubernetes,OAM和CoreWorkflows
关键点:•许多组织的目标是构建自己的云平台,这些平台通常由内部部署架构和云供应商共建完成.•虽然Kubernetes没有提供开箱即用的完整PaaS平台式服务,但其具备完整的API,清晰的技术抽取和易理 ...
- luis使用手册
Luis聊天机器人的使用 首先打开luis官网 图5.1 luis官网界面 图5.2 app应用管理界面 界面显示现有应用,显示它们的名称,语言,日期,以及使用次数.点击创建一个新的app应用. ...