독서/서평

[PySpark 배우기] PySpark 기본 다루기 초급서

Dibrary 2022. 9. 27. 09:50
반응형

이 책은 이미 Spark 관련 책을 하나 가지고 있었기에 여느 스파크 책과 뭐가 다를까~ 싶어서 도서관에서 빌려서 본 책이다. 

Spark는 Scala로 배워야 가장 최근 경향을 빠르게 따라갈 수 있고, 더 많은 기능이 지원된다고 알고 있는데, 그럼에도 파이썬이라는 언어의 '간결하고 명료함'을 포기할 수 없다면, PySpark를 사용하는 것도 하나의 방법이다.

다만, Spark는 JVM을 기반으로 실행되기 때문에 Python을 사용하면 JVM에서 Python으로 통신하는 부분이 하나 더 추가되는 꼴이라서 Scala보다 당연히? 느릴 수 밖에 없다. 

책의 초반에는 이런 개념적인 내용과 스파크의 아키텍쳐 및 실행 흐름을 설명하고있다.

 


여느 스파크 책과 마찬가지로 간단한 연산 및 메서드를 배우고 그 다음에 어느정도 규모 있는 데이터를 사용해서 데이터를 요리조리 가공해 나간다. 단어의 번역이 약간 개인적으로 매끄럽지 않다는 생각이 들긴 하지만 그렇다고 아예 이해가 안 되는 것은 아니었다. (물론 나는 Scala로 써진 스파크 책을 이미 2번 이상 읽었다는 것을 잊어서는 안된다..)

이 책도 스파크SQL, MLlib, ML, 스파크 스트리밍등은 각 챕터로 구분되어 설명한다.

특히 스파크SQL에서는 간단한 데이터만을 가지고 쿼리로 원하는 결과를 가져오는 예시 코드들이 있는데, 나는 이를 pandas를 사용해서 csv파일을 읽어온 후에 스파크SQL을 사용해 보았다. 

 


이 책의 단점 하나는 해당 데이터가 '없다'는 것이다...

소스코드를 받을 수 있는 github로 가보았지만, 아쉽게도 모든 챕터의 데이터가 다 있지 않았다. 그래서 책 중반부부터 .gz 압축파일로 된 데이터를 사용하는 부분은 그냥 코드만 보고 이해하려고 노력해야 했다.

 

그리고 또 다른 단점으로는 import 구문이 '안 보이는' 코드가 더 많다.

만일 단순히 소스코드를 따라서 입력하다가 어떤 메서드를 사용할 수 없다는 에러가 나오면 십중팔구 import를 해주지 않은 것이다. 문제는, 이 import를 어떤 것으로부터 해야 하는지 초심자는 모른다. (직접 문서를 찾을 수 있는 사람이라면 애초에 이 책을 보지 않았으리라 생각된다.)

 


과거 Scala로 설명되는 Spark책의 소스코드를 PySpark 문서 등을 참고하면서 파이썬 코드로 변경하는 작업을 했었는데, 마침 'PySpark 코드를 이렇게 했었지~' 하는 기억이 새록새록 나게 해 준 책이다.

파이썬이라는 언어 1개만 알고있고, 최근 거의 사방에서 다 쓰는 분산처리를 혹은 스트리밍 처리를 해보고 싶다면 PySpark를 사용해보는 것을 추천한다.

나름 이해하기 쉬운 파이썬으로 개괄을 잡은 후에 Scala 코드로 된 스파크를 다시 본다면 또 더 깊은 내용에 접근할 수 있지 않을까 싶다.

728x90
반응형