본문 바로가기
Programming/Scala

IntelliJ에서 scala 사용해보기

by 유주원 2018. 2. 23.

우선 mac 기준으로 IntelliJ와 JDK는 깔려 있다는 가정하에 IntelliJ에서 IntelliJ IDEA > Plugins에서 scala를 검색해보자.


 

위의 그림과 같이 SBT와 Scala가 검색이 되는데 이 두 개의 플러그인을 모두 설치하자.

설치한 후에는 IntelliJ 리스타트~ 하기 전에 scala sdk부터 설치를 하자. 아래의 링크로 들어가서 scala sdk를 설치하자.


https://www.scala-lang.org/download/


나 같은 경우에는 Mac OS 버전인 scala-2.12.4tgz을 다운 받았다.

적절한 폴더에 압축을 풀어주자. (나 같은 경우에는 JAVA JDK와 비슷한 위치에 압축을 풀음.)

기왕이면 SCALA_HOME과 PATH도 ~./bash_profile에 설정해 주는 센스!!


export SCALA_HOME=/Library/Java/JavaVirtualMachines/scala-2.12.4

export PATH="$PATH:$SCALA_HOME/bin"




이제 IntelliJ를 다시 시작한 후 scala project를 만든 후 File > New > Module.. 을 선택해서 왼쪽 메뉴에서 scala 항목을 선택 해 주자.


Next를 누르면 Module name을 설정해 주고, scala sdk과 module sdk를 설정해 주는 부분이 있다. module sdk는 jdk 위치를 지정해 주면 되고 scala sdk는 scala를 설치한 경로를 지정해 주면 된다.


이로써 intelliJ에서 scala 를 사용하기 위한 모든 준비 과정이 끝났다!!


그럼 이제 이렇게 만든 scala project를 이용해서 word count 프로그램을 만들어 보자.


build.sbt 파일을 열고 아래와 같이 입력하자.


name := "word-count"

version := "0.1"

scalaVersion := "2.10.4"

libraryDependencies ++= Seq(

  "org.apache.spark" %% "spark-core" % "1.3.1"

)


이렇게 입력하면 intelliJ에서 build.sbt가 변경되었으니 refresh 해달라는 알림창이 뜰 것이다. refresh 버튼을 눌러 주자.

sbt가 돌면서 필요한 dependency들을 다운 받을 것이다. 


(만약에 scalaVersion을 2.12.4로 변경하면 아래와 같은 에러가 발생하는데 아무래도 2.12.4 버전에는 다른 버전의 spark-core가 설치되어야 해서 그런 것 같다. 해보다가 안되서 그냥 2.10.4로 설정하였다.)


Error Message : module not found: org.apache.spark#spark-core_2.12;1.3.1


이제 scala 파일을 하나 새로 만들고 아래와 같이 입력해 주자. 실제로 word count를 하는 코드를 작성할 것이다.





간략하게 코드를 설명하자면 첫 번째 argument에는 spark server 주소를 입력하게 되어 있다. 하지만 없을 경우에는 local로 돌리게 코드가 작성되어 있다.

두 번째 argument 는 word count를 할 file을 입력받게 되어 있는데 없는 경우는 "pandas", "i like pandas" 이 문장들에 들어 있는 word들을 count 한다. 

word들을 띄어쓰기 단위로 분리를 하고, reduceByKey 혹은 countByValue를 통해 word들의 개수를 출력한다.