Spark 基础 —— Scala 集合

来源:互联网 发布:天庭网络直播间txt下载 编辑:程序博客网 时间:2024/06/05 11:09

Scala 集合类库很庞大,包括 List,Set,Map,Array等。利用 toList,toSet 和 toArray 方法,各种集合类型可以方便地互相转换。

Array

val a = Array(1, 2, 3)
  • (1)基本操作

    • 数组长度:a.length
    • 数组访问:a(0)/a(1)/a(2)
    • 数组末尾的元素:a.last
    • 数组除去末尾其他的元素:a.init
  • (2)indexOf:将值转化为下标:

    val a = Array(0, 0, 1, 0)a.indexOf(1)            # 2val a = Array(0, 0, 1, 1)a.indexOf(1)            # 2            # 用法同 Python list 中的 index() 成员函数
  • (3)toBuffer

    val buf = a.toBufferval arr = buf.toArray

Map

Scala 的 Map 类没有提供根据内容的键或值排序的方法,当我们可以将 Map 转换为 Scala 的 Seq 类型,而 Seq 支持排序。

比如 countByValue() 便会得到 scala.collection.Map[String, Long] 的 Map 集合,此时如果想要根据 Value(也即出现的次数)排序的话,需要调用 toSeq 将其转化为 Seq 类型:

rawData.map(_.split(',').last).countByValue().toSeq.sortBy(_._2).reverse.foreach(println)

Scala 的 Seq 类和 Java 的 List 接口类似,都是可迭代集合,即具有确定的长度并且可以根据下标来查找值。

seq.sortBy(_._1).foreach(println)        # _1:表示键seq.sortBy(_._2).reverse.foreach(println)        # _2:表示值
0 0
原创粉丝点击