spark算子

本文详细介绍了Spark算子,包括提取元素、修改操作、逐个迭代处理、分组、聚合、验证、大小和转变等操作。例如,`head`用于获取数组的第一个元素,`take`用于提取指定数量的元素,`filter`用于筛选满足条件的元素,`reduce`用于元素聚合,`map`和`flatMap`用于元素转换,`groupBy`用于按条件分组,以及`zip`用于组合两个序列等。
摘要由CSDN通过智能技术生成

spark 算子

提取元素

def head:T

提取头元素

def headOption:Option[T]

提取头元素,若数组为空则返回None,解决数组为空引发报错的问题

def last : T

提取尾元素

def lastOption: Option[T]

提取尾元素, 若数组为空则返回None,解决数组为空引发报错的问题

val arr = Array(12,11)
val arr1:Array[Int] = Array()
println(arr.head)
println(arr.headOption)
println(arr1.headOption)
println(arr.last)
println(arr.lastOption)
12
Some(12)
None
11
Some(11)

def apply(i:Int) :T

取出指定下标的元素

def applyOrElse(i:Int, f:(x:Int)=>{…}) T

提取改下标的元素,如果越界,则将参数1传入参数2的函数中

val arr = Array(1,3,4,5)
    println(arr.indexOf(1))
    println(arr.applyOrElse(10,(x:Int) => 2))
0
2

def take(size:Int) :Array[T]

从左提取size个元素

def takeRight(size:Int) :Array[T]

从右边提取size个元素

def takeWhile(f:T=> Boolean) :Array[T]

当一个元素满足条件时,返回当前序列中满足条件的连续元素,至不符合条件结束

def filter(f:T=> boolean): Array[T]

提取集合中所有满足条件的元素

def filterNot(f:T => boolean):Array[T]

提取集合中所有不满足条件的元素

def collect(PartialFunction[T,B]:T =>B )

提取集合中所有满足参数偏函数条件的元素

   val arr = Array(1,3,4,5,1)
    arr.collect({
   case x if(x>2) => {
   x*2}}).foreach(println)
6
8
10

def collectFirst(PartialFunction[T,B]:T=> )

提取集合中第一个满足参数偏函数条件的元素

def find(f:T=>Boolean) :Option[T]

提取集合中第一个满足参数偏函数的元素

def slice(from: Int, Util:Int)

提取集合从from 到 util 之间的所有元素,前包后不包

def init :Array[T]

提取除最后一元素外的所有元素,空集合报错

def inits

返回迭代器 ,递归提取除最后一个元素外的所有元素,并封装为迭代器返回

val arr = Array(1,3,4,5,1)
  arr.inits.foreach(x=>println(x.mkString(",")))
1,3,4,5,1
1,3,4,5
1,3,4
1,3
1

tail :Array[T]

提取除第一个元素外的所有元素

tails

递归提取除第一个元素外的所有元素的迭代器

def lift :

def orElse(f:partialFunction[T,B])

返回根据参数偏函数规则提取数组元素的偏函数

修改操作

def update(index:Int, newV:T)

修改index位置的元素为newV 越界报错

def update(index:Int, newV:T) Array[T]

修改index位置的元素为newV,并将修改后的数组返回

def ++|union 并集

def ++: 并集

:后面的类型决定返回值类型

def itersect(Arrar[T]) ) 交集

返回类型由前面的数组类型决定

def diff 差集

:+ 尾部追加

+: 头部追加

def drop(n:Int) :Array[T] 头删除n个元素

def dropRight(n:Int) 从右边删除n个元素

def dropWhile(P:Int =>Boolean)

当第一个元素满足条件开始删除连续的满足条件的元素至不满足条件时结束

def patch(from:Int,sub:Gensq,replaceLen:Int)

从from开始 ,将原序列replaceLen个元素替换为序列sub,sub长度大于replaceLen时原序列扩容,否则长度减小

val arr = Array(1,3,4,5,1)
    val list = List(1,2,3)
    arr.patch(2,list,5).foreach(println)
1
3
1
2
3

逐个迭代处理

def map(f:T=>B )

def reverseMap(f:T=>B)

反向map

	val arr = Array(1,3,4,5,1)
    arr.reverseMap(x=>x+10).foreach(println)
    ------------------
    11
    15
	14
	13
	11

def transform(f:T=>B)

def flatten :Array[T]

数组降维,返回一个一维数组

def flatMap (f:T=>B)

先进行map ,在进行降维,对序列内的元素进行操作返回一个新序列

分组

def par :ParArray[T]

返回一个并行序列且不能不修改,其作用相当于hashcode进行分组

	val arr = Array(1,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值