2014년 11월 4일 화요일

Spark 사용기 2 - Python vs Scala vs Java : Spark 핸들링 언어 비교

Python 과 Scala , 그리고 Java 중 가장 손에 익은 언어는 Java 임에 틀림이 없다.
그러나, Python 도 익히 손에 익어 있고, 코딩하는 재미가 Java 보다 훨씬 더 큰게 사실이다. 그리고, Scala 는 아직까지는 다소 손에 덜 익긴 했지만, Python 이상으로 코딩에 재미를 느껴 가고 있다.

Java 가 최근에 너무 지겨워 진것도 사실이긴 하지만, 그 모든 것보다, Java 로 Spark 를 하지 않아야 하는 절대 절명의 이유가 하나 있는데...

바로 Scala 도 되고, Python 도 되지만, Java 는 Interactive 한 cli 콘솔이 없다는 것이다. 코딩을 하는 동안 한줄 한줄 데이타가 어떻게 바뀌고, 현 상태의 데이타는 어떤 상태인지, cli 를 통하여 Scala 와 Python 은 바로바로 확인이 가능하지만, Java 는 처음부터 끝까지 상상속의 코딩을 하고 난 다음, 배포 스크립트를 만들고, 배포 후에나 결과를 확인 할 수 있다. 결과가 한방에 성공적으로 나와 준다면 다행이지만, 결과가 미덥지 못하기라도 한다면, 라인 단위로 디버깅이라도 하고 싶다면, 여간 불편한게 아니다...



Python 은 Scala 보다 다소 느린게 사실이긴 하지만, Python 또한 , 버리지 못하는 또하나의 이유가 있다. 바로, IPython 같은 훌륭한 확장 CLI 가 있다는 것과, 그것을 통하여, 데이타를 중간중간 시각화 해볼 수 도 있다는 것이다.




위와 같은 이유를 제외 하고도, Functional Programming 을 Java 로 하는것은 여간 불편한게 아니다. 아래와 같은 코드만 봐도... Python 이나 Scala 가 짧고 우아하게 표현하는 것을 Java 는 너무나 장황하게 표현하고 있으며, 다분히 억지 스럽워서 가독성도 떨어진다.



  • Spark with Python


  • Spark with Scala






  • Spark with Java


댓글 없음:

댓글 쓰기