spark学习之旅----spark基础scala

本篇文章是学习了课程中scala的相关知识点之后,对本人认为比较重点的知识做一些总结和记录,供日后学习使用。

第一点:scala有两种变量类型:val var 。

val 变量类型:不可变变量 也就是 常量,声明常量的时候使用。
var 变量类型:可变变量 也就是 变量,声明变量的时候使用。
在spark的RDD数据集开发中,大部分情况下都是使用val 不可变变量,所以val声明用的较多。
在声明变量的时候可以选择是否给变量指定类型,在指定类型之后,后面对该变量进行赋值时要对应。
scala是没有++,--操作的,但可以使用这样的形式:age += 1实现加1操作等。

第二点:scala数组Array ArrayBuffer 以及遍历

1.构建数组,可以直接使用Array构建,但是是长度不可改变的数组。
由于Scala与Java都是运行在JVM中,双方可以互相调用,因此Scala数组的底层实际上是Java数组。
2.在Scala中,如果需要类似于Java中的ArrayList这种长度可变的集合类,则可以使用ArrayBuffer。
(1)为了方便使用,可以先导入scala库:import scala.collection.mutable.ArrayBuffer
//这里创建一个未指定类型的空ArrayBuffer数组,可以使用+=操作符添加元素。
val arr = ArrayBuffer() 
添加一个元素: arr += 1
添加多个元素: arr += (2,3,4)
添加一个数组: arr ++= Array(1,2,4)
arr.trimEnd(3)  //从尾部开始截断3个元素
arr.trimStart(2)   //从头开始截断2个元素
//使用insert()函数可以在指定位置插入元素,但是这种操作效率低,因为需要移动指定位置后的所有元素。
arr.insert(5,100)  //在第五个元素位置增加一个元素100
arr.insert(7,9,2,555,66)  //在第七个位置(最后一个位置)加入 9,2,555,66
//使用remove()函数可以移除指定位置的元素
arr.remove(7)  //移除第七位的元素
arr.remove(6,3)   //指定从第6个位置开始移除3个元素
//Array和ArrayBuffer的互相转换
arr.toArray  //转换成不可变数组
arr.toBuffer //转换成ArrayBuffer类型数组,可变2)遍历Array和ArrayBuffer
//使用for循环和until遍历Array|ArrayBuffer
for (i <- 0 until arr.length)
    println(arr(i))
//跳跃遍历
for (i <- 0 until (arr.length,2))
    println(arr(i))
//从尾部开始遍历
for (i <- (0 until arr.length).reverse)
    println(arr(i))
(3)数组的常用操作
//求和
val arr = Array(1,2,3)
val sum = arr.sum
//取最大值
val max = arr.max
//排序
scala.util.Sorting.quickSort(arr)
//获取数组中所有元素内容
arr.mkString
arr.mkString(",")  //内容以,隔开

第三点:map操作

val person = Map("spark" -> 6,"hadoop" -> 11)
person("hadoop")  #根据key访问其value值
val person = scala.collection.mutable.Map("spark" -> 6,"hadoop" -> 11)  #这个可以改变
person += ("Flink" -> 5)
person -= "Flink"
val sparkValue = if(person.contains("spark"))  person("spark") else 0
val sparkValue = person.getOrElse("Flink",0)   #是否包含Flink,包括就输出Flink对应的value值,不包括就输出0
for((key,value) <- person)  println(key + " : " + value)  #遍历打印出这个map
for( key <- person.keySet)  println(key + " : ")
val person = scala.collection.immutable.SortedMap("spark" -> 6,"hadoop" -> 11)  #map排序,根据其元素的key进行排序

第四点:tuple

val tuple = ("spark",6,99.0)   #tuple元组,可以包含不同类型的元素  访问的时候下标从1开始
tuple._1
tuple._2
当函数要求最后返回若干个值的时候或者接受若干个值时,使用tuple
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值