소프트웨어 개발/Scala - Functional

spark-scala 를 이용한 wordcount 예제

늘근이 2015. 5. 31. 15:32

하둡에서 약 30분에서 50분가량 걸렸었던 부분에 있어 스파크를 이용하면 얼마나 빠라질지 기대를 해보면서

스칼라 언어로 빠르게 짰다. 다른 부분과 다르게 이런 콜렉션 다루는게 굉장히 빈번하게 이루어진다면 스칼라가 자바보다 훨씬 코드를 단축시킬수 있는 측면이 클것이다.


val textFile = sc.textFile("/home/username/word.txt")

val counts = textFile.flatMap(line => line.split(" "))map(word => (word, 1))reduceByKey(_ + _)

counts.collect()


신기하게도 하둡으로 구현했던 미치도록 많던 코드가 위의 세줄로 압축시킬수있다. 위의 코드는 wordcount이다. 

하지만 SPARK_MEM에 제대로된 메모리를 할당하지 않았을경우, 바로 HEAP SPACE EXCEPTION이 떨어진다.

음 좀 효율적으로 쓰지는 못하려나