Sparkベース——Scala集合
2476 ワード
Scala集合クラスライブラリはリスト,Set,Map,Arrayなど膨大である.toList,toSet,toArray法により,種々の集合型を容易に相互変換できる.
Array(1)基本操作 配列長:a.length 配列アクセス:a(0)/a(1)/a(2) 配列の末尾の要素:a.last 配列末尾の他の要素を除去する:a.init (2)indexOf:値を下付きに変換 (3)toBuffer
Map
ScalaのMapクラスは、コンテンツのキーまたは値に基づいてソートする方法を提供していません.MapをScalaのSeqタイプに変換することができ、Seqはソートをサポートします.
例えばcountByValue()はscalaを得る.collection.Map[String,Long]のMap集合は、Value(つまり出現回数)に従って並べ替える場合はtoSeqを呼び出してSeqタイプに変換する必要があります.
ScalaのSeqクラスはJavaのListインタフェースと類似しており,いずれも反復可能な集合であり,すなわち決定された長さを有し,下付き文字に基づいて値を検索することができる.
Array
val a = Array(1, 2, 3)
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()
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: