読者です 読者をやめる 読者になる 読者になる

『初めてのSpark』を読み始めた (5)

アクション

アクションの例.

データの全体, 一部をドライバプログラムに返すもの

  • collect(): RDD の内容全体を通常のコレクションとしてドライバに返す
  • count(): RDD の要素数を返す
  • countByValue(): RDD の各要素の要素数を返す
  • take(num): RDD の先頭から num 個の要素を返す
  • top(num): 値の大きい方から num 個の要素を返す
  • takeOrdered(num): 値の小さい方から num 個の要素を返す
  • takeSample(withReplacement, num): num 個の要素をランダムに返す
    • withReplacementtrue を指定すると, 同じ要素が何度も返却されることがある
$ spark-shell
...
scala> val input = sc.parallelize(List(1, 2, 3, 3))
scala> val collectResult = input.collect()
scala> println(collectResult.getClass.getSimpleName)
int[]
scala> println(collectResult.mkString(", "))
1, 2, 3, 3
scala> val countResult = input.count()
scala> println(countResult.getClass.getSimpleName)
long
scala> println(countResult)
4

scala> val countByValueResult = input.countByValue()
scala> println(countByValueResult.getClass.getSimpleName)
Map3
scala> println(countByValueResult.mkString(", "))
1 -> 1, 2 -> 1, 3 -> 2

scala> val takeResult = input.take(2)
scala> println(takeResult.getClass.getSimpleName)
int[]
scala> println(takeResult.mkString(", "))
1, 2

scala> val topResult = input.top(2)
scala> println(topResult.getClass.getSimpleName)
int[]
scala> println(topResult.mkString(", "))
3, 3

scala> val takeOrderedResult = input.takeOrdered(2)
scala> println(takeOrderedResult.getClass.getSimpleName)
int[]
scala> println(takeOrderedResult.mkString(", "))
1, 2

scala> val takeSampleResult = input.takeSample(false, 2)
scala> println(takeSampleResult.getClass.getSimpleName)
int[]
scala> println(takeSampleResult.mkString(", "))
3, 3