Groovy で Apache Spark を使用

Java で Apache Spark を使用Scala 2.10 で Apache Spark を使用 に続き、今回は Groovy で同様の処理を実装してみました。

money_count.groovy
@Grab('org.apache.spark:spark-core_2.10:1.0.0')
import org.apache.spark.api.java.JavaSparkContext

def spark = new JavaSparkContext('local', 'MoneyCount')

spark.textFile(args[0]).countByValue().each { k, v ->
    println "$k = $v"
}

今回のように値毎のカウントを取得するだけなら countByValue() を使うと簡単です。 ちなみに、countByValue() の結果は Map です。

実行結果
> groovy money_count.groovy input_sample.txt

100 = 2
50 = 1
5 = 3
500 = 1
10 = 2
1 = 2
2000 = 1
1000 = 3
10000 = 2
input_sample.txt の内容
100
1
5
50
500
1000
10000
1000
1
10
5
5
10
100
1000
10000
2000

今回のソースは http://github.com/fits/try_samples/tree/master/blog/20140629/