Sparkベース——Scala集合

2476 ワード

Scala集合クラスライブラリはリスト,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)
                # 2
    val a = Array(0, 0, 1, 1)
    a.indexOf(1)
                # 2
                #     Python list    index()     
  • (3)toBuffer
    val buf = a.toBuffer
    val 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: