Page 18 -
P. 18

1.1.3.1 사용 편의성

                   스파크 API는 맵리듀스 API보다 훨씬 사용하기가 쉽다. 부록 B에 수록된 전통적인 word-
                   count 예제를 맵리듀스로 구현하려면 클래스를 세 개 정의해야 한다. 각각 작업을 셋업하는 메인

                   클래스와 매퍼(mapper) 클래스, 리듀서(reducer) 클래스다. 각 클래스별로 대략 열 줄 분량의 코드
                   를 작성해야 한다.

                   반면 스파크에서는 동일한 word-count 문제를 다음과 같이 짤막한 스칼라 코드로 완성할 수
                   있다.

                    val spark = SparkSession.builder().appName("Spark wordcount")
                    val file = spark.sparkContext.textFile("hdfs:////.")
                    val counts = file.flatMap(line => line.split(" "))
                        .map(word => (word, 1)).countByKey()
                    counts.saveAsTextFile("hdfs:////.")


                   그림 1-1은 맵리듀스 word-count와 스파크 word-count를 비교한 것이다.

                      그림 1-1 스파크의 간결함과 단순함을 보여 주는 word-count 프로그램 예제(왼쪽은 하둡 맵리듀스 프레임워크로 구현한 word-
                     count 프로그램이고, 오른쪽은 스칼라로 구현한 스파크 word-count 프로그램이다.)

                               ݗܻٓझ XPSE DPVOU                     झ౵௼ XPSE DPVOU




                                             ݫੋ ௿ېझ









                                             ݒಌ







                                             ܻٓࢲ










             034




         spark_08.indd   34                                                                      2018-05-08   오후 6:26:11
   13   14   15   16   17   18   19   20   21   22   23