메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

9가지 사례로 익히는 고급 스파크 분석(2판)

현실 세계 빅데이터로 배우는 데이터 과학과 머신러닝

한빛미디어

번역서

절판

  • 저자 : 샌디 라이자 , 유리 레이저슨 , 션 오언 , 조시 윌스
  • 번역 : 박상은 , 권한철 , 서양주
  • 출간 : 2018-03-05
  • 페이지 : 332 쪽
  • ISBN : 9791162240526
  • 물류코드 :10052
  • 초급 초중급 중급 중고급 고급
4.2점 (9명)
좋아요 : 11

다양한 현실 세계 예제로 스파크 2의 진면목을 경험한다. 

이 책은 독자에게 대량의 데이터셋을 가지고 스파크 2를 활용해 복잡한 분석과 머신러닝 학습을 실제로 해보는 생생한 느낌을 전달한다. 단순히 모델을 구축하고 평가하는 데 그치지 않고, 데이터 정제부터 전처리, 데이터 조사, 실제 제품을 만들기까지의 전체 파이프라인을 보여준다. 이러한 과정을 다양한 분야에서 가져온 현실 예제에 맞게 교차 최소 제곱 추천 알고리즘, 의사 결정 나무, K-평균 군집화, 숨은 의미 분석, 세션화, 몬테카를로 시뮬레이션 등의 기법을 동원해 풀어본다.

 

스파크 2 실전편! 실무와 가장 가까운 경험을 제공한다. 

이 책은 기능과 API를 단조롭게 나열하지 않는다. 현실과 동떨어진, 예제를 위한 예제를 따라 하지도 않는다. 대신 우리 주변에서 찾을 수 있고 우리 삶과 밀접한 실제 데이터를 가져와 함께 분석하고 다듬어본다. 그것도 하나가 아니라 9가지다. 음악 추천부터 이상 탐지, 교통, 금융, 영상 데이터 등 관심 가는 장을 먼저 봐도 좋고, 차례대로 천천히 따라 해도 좋다. 그럼 가장 진보한 분석 도구인 스파크 2로 다 함께 데이터의 바다를 항해해보자!

 

2판에 관하여

1판이 출간된 이후 스파크의 메이저 버전이 올라가면서 완전히 새로운 핵심 API가 도입되고 MLlib이나 Spark SQL과 같은 하위 컴포넌트들도 크게 바뀌었다. 이러한 변화들이 반영되다 보니, 이 책 초판의 많은 부분이 의미가 없게 되었다. 이번 2판은 새로운 스파크 API를 사용하기 위해서 모든 장을 수정하였다.

 

주요 내용

1. 오디오스크로블러(AudioScrobbler) 데이터셋으로 음악 추천하기

2. 의사 결정 나무로 산림 식생 분포 예측하기

3. K-평균 군집화로 네트워크 이상 탐지하기

4. 숨은 의미 분석으로 위키백과 이해하기

5. 그래프엑스(GraphX)로 동시발생 네트워크 분석하기

6. 뉴욕 택시 운행 데이터로 위치 및 시간 데이터 분석하기

7. 몬테카를로 시뮬레이션으로 금융 리스크 추정하기

8. BDG 프로젝트와 유전체학 데이터 분석하기

9. 파이스파크(PySpark)와 썬더(Thunder)로 신경 영상 데이터 분석하기

샌디 라이자 저자

샌디 라이자

리믹스에서 대중교통에 적용할 수 있는 알고리즘을 개발하고 있다. 이전에는 클라우데라와 클로버 헬스에서 선임 데이터 과학자로 근무했다. 아파치 스파크 커미터이자 아파치 하둡의 PMC 멤버이며 스파크 시계열 데이터 처리 프로젝트의 창설자다. 2012년 브라운 대학교 전산학과의 트와이닝 어워즈에서 ‘Most Chill’ 부문을 수상했다.
유리 레이저슨 저자

유리 레이저슨

마운트 시나이 의과대학교 아이칸 스쿨의 유전학 조교수다. 하둡 생태계를 활용해 유전체학과 면역학에 적용할 수 있는 확장 가능한 기술을 개발하고 있다.
션 오언 저자

션 오언

클라우데라 데이터 과학팀의 디렉터다. 아파치 스파크 커미터와 PMC 멤버이며, 아파치 머하웃(Apache Mahout)의 커미터였다.
조시 윌스 저자

조시 윌스

슬랙(Slack) 데이터 엔지니어링팀의 리더이며 아파치 크런치(Apache Crunch) 프로젝트의 창설자다. 데이터 과학자들에 관한 트윗을 한 번 남긴 적이 있다.
박상은 역자

박상은

컴퓨터에 붙은 그림을 보고 애플이라는 단어의 뜻을 알게 된 이 땅의 흔한 개발자다. 포항공과대학교에서 전산학을, 한국과학기술원에서 인공지능을 공부한 덕분에 알파고와 스카이넷을 구분할 줄 아는 지혜를 갖추게 되었다. 메일, 브라우저, CMS, 도서 관리 시스템 등 일관성 없이 다양한 프로젝트에 참여했다. 이렇게 하여 물에 물 탄 듯한 경력이 완성되는 듯했으나, 최근 몇 년은 빅데이터 처리 관련 연구 개발에 집중했다. 현재 인공지능연구원의 Field AI팀 팀장으로 딥러닝을 활용해서 개인과 기업에 도움이 되는 서비스를 개발하고 있다. 특히 자연어 데이터와 금융 데이터를 딥러닝과 빅데이터 기술을 활용하여 분석하는 문제를 고민 중이다.
권한철 역자

권한철

에스코어의 데이터 분석가 및 플랫폼 개발자다. 보안 관제용 실시간 CEP 엔진 개발을 비롯해서 스파크를 활용한 다수의 프로젝트에 참여했으며, 현재는 파이썬 라이브러리를 활용하여 콜센터 데이터 분석 업무를 수행하고 있다. 특히 실시간 데이터 분석과 통계 및 머신러닝 알고리즘을 활용한 데이터 분석에 관심이 많다.
서양주 역자

서양주

한국과학기술원 학부에서 수학을, 서울대학교에서 석사과정으로 통계학을 전공하였으며, 티맥스소프트를 시작으로 개발자로서 일하게 되었다. 그 후 에스코어에서 2013년 하둡과 스파크를 접한 이후로 빅데이터 분석을 주 업무로 수행하게 되었다. 현재는 카카오 추천팀에서 실시간 콘텐츠 추천 업무를 하고 있다.

1장. 빅데이터 분석하기

1.1 데이터 과학의 어려움

1.2 아파치 스파크란

1.3 이 책에 관하여

1.4 2판에 관하여

 

2장. 스칼라와 스파크를 활용한 데이터 분석

2.1 데이터 과학자를 위한 스칼라

2.2 스파크 프로그래밍 모델

2.3 레코드 링크

2.4 스파크 셸과 SparkContext 시작하기

2.5 클러스터에서 클라이언트로 데이터 가져오기

2.6 클라이언트에서 클러스터로 코드 보내기

2.7 RDD에서 Data Frame으로

2.8 DataFrame API로 데이터 분석하기

2.9 데이터프레임에 대한 빠른 요약 통계

2.10 데이터프레임의 축 회전과 형태변환

2.11 데이터프레임을 결합하고 특징 선택하기

2.12 실제 환경을 위한 모델 준비하기

2.13 모델 평가

2.14 한 걸음 더 나아가기

 

3장. 음악 추천과 Audioscrobbler 데이터셋

3.1 데이터셋

3.2 교차 최소 제곱 추천 알고리즘

3.3 데이터 준비하기

3.4 첫 번째 모델 만들기

3.5 추천 결과 추출 검사하기

3.6 추천 품질 평가하기

3.7 AUC 계산하기

3.8 하이퍼파라미터 선택하기

3.9 추천 결과 만들기

3.10 한 걸음 더 나아가기

 

4장. 의사 결정 나무로 산림 식생 분포 예측하기

4.1 회귀로 돌아와서

4.2 벡터와 특징

4.3 학습 예제

4.4 의사 결정 나무와 랜덤 포레스트

4.5 Covtype 데이터셋

4.6 데이터 준비하기

4.7 첫 번째 의사 결정 나무

4.8 의사 결정 나무 하이퍼파라미터

4.9 의사 결정 나무 튜닝하기

4.10 범주형 특징 다시 살펴보기

4.11 랜덤 포레스트

4.12 예측하기

4.13 한 걸음 더 나아가기

 

5장. K-평균 군집화로 네트워크 이상 탐지하기

5.1 이상 탐지

5.2 K-평균 군집화

5.3 네트워크 침입

5.4 KDD 컵 1999 데이터셋

5.5 첫 번째 군집화하기

5.6 k 선정하기

5.7 R에서 시각화하기

5.8 특징 정규화

5.9 범주형 변수

5.10 엔트로피와 함께 레이블 활용하기

5.11 군집화하기

5.12 한 걸음 더 나아가기

 

6장. 숨은 의미 분석으로 위키백과 이해하기

6.1 문서-단어 행렬

6.2 데이터 구하기

6.3 파싱하여 데이터 준비하기

6.4 표제어 추출

6.5 단어빈도-역문서빈도(TF-IDF) 계산하기

6.6 특잇값 분해

6.7 중요한 의미 찾기

6.8 낮은 차원 표현에 대한 의문과 고찰

6.9 단어와 단어 사이의 연관도

6.10 문서와 문서 사이의 연관도

6.11 문서와 단어 사이의 연관도

6.12 여러 개의 단어로 질의하기

6.13 한 걸음 더 나아가기

 

7장. 그래프엑스로 동시발생 네트워크 분석하기

7.1 네트워크 분석 사례: MEDLINE의 인용 색인

7.2 데이터 구하기

7.3 스칼라 XML 라이브러리로 XML 문서 파싱하기

7.4 MeSH 주요 주제와 주제들의 동시발생 분석하기

7.5 그래프엑스로 동시발생 네트워크 구성하기

7.6 네트워크의 구조 이해하기

7.7 관련성 낮은 관계 필터링하기

7.8 작은 세상 네트워크

7.9 한 걸음 더 나아가기 

 

8장. 뉴욕 택시 운행 데이터로 위치 및 시간 데이터 분석하기

8.1 데이터 얻기

8.2 스파크에서 서드파티 라이브러리로 작업하기

8.3 지리 데이터와 Esri Geometry API, 그리고 Spray

8.4 뉴욕 택시 운행 데이터 준비하기

8.5 스파크에서 세션화 작업 수행하기

8.6 한 걸음 더 나아가기

 

9장. 몬테카를로 시뮬레이션으로 금융 리스크 추정하기

9.1 전문 용어

9.2 VaR 계산 방법

9.3 우리의 모델

9.4 데이터 구하기

9.5 전처리하기

9.6 요인 가중치 결정하기

9.7 표본추출

9.8 실험 실행하기

9.9 수익 분포 시각화하기

9.10 결과 평가하기

9.11 한 걸음 더 나아가기

 

10장. BDG 프로젝트와 유전체학 데이터 분석하기

10.1 모델링과 저장소를 분리하기

10.2 ADAM CLI를 이용한 유전체학 데이터 처리

10.3 ENCODE 데이터로부터 전사인자 결합 부위 예측하기

10.4 1000 지놈 프로젝트에서 유전자형 질의하기

10.5 한 걸음 더 나아가기

 

11장. 파이스파크와 썬더로 신경 영상 데이터 분석하기

11.1 파이스파크 소개

11.2 썬더 라이브러리 개요와 설치

11.3 썬더로 데이터 읽어 들이기

11.4 썬더로 신경 세포 유형 분류하기

11.5 한 걸음 더 나아가기

2년 전 이 책의 1판을 처음 접했을 때 큰 감동을 받았다. 다만 딱 한 가지 아쉬웠던 점은, 당시 Spark가 2.x 버전을 발표하고 API의 패러다임을 RDD에서 DataFrame으로 바꿔가고 있었는데 반해 1판은 주로 RDD API를 사용했다는 점이었다.

이번에 새로 출간된 2판은 불가피한 경우를 제외하고는 모든 예제를 DataFrame 기반으로 변경하였는데, 1판과 2판을 모두 읽은 입장에서는 사실상 다른 책이라고 느껴질 정도로 또다른 감동을 받았다. 그 감동을 공유하고자 한다.


데이터 분석가는 어떤 일을 하는가?

이 책에는 엔지니어링 관점에서 Spark 클러스터를 어떻게 구성하고 데이터 처리 성능을 어떻게 높일 수 있는지에 대한 내용은 거의 없다. (이런 내용은 창시자들이 직접 쓴 Spark: The Definitive Guide를 참조하는 것이 좋겠다.)

그보다는 오로지 데이터 분석가의 관점에서 Spark를 이용해서 가치를 만들어내는 과정을 아주 소상히 담아냈다. 어찌나 소상한지 마치 ‘어느 데이터 분석가의 하루'라는 에세이처럼 느껴질 정도다.

데이터를 적합한 포맷으로 불러와서 기본 통계를 살펴보며 이상 데이터를 제거하고, 분석에 편리한 형태로 가공한 뒤 해결하고자 하는 문제에 맞는 모델을 만들고 평가하고, 다시 개선해서 평가하고, 또 다시 개선해서 평가하고, 그리고 마지막으로 다시 개선해서 평가하고…

얼마나 현실적인지 한 챕터에서는, 수십페이지 분량의 코드로 데이터를 이리저리 구워삶아 모델을 만들어 내고서는 아래와 같이 마무리한다.

우리 모델은 관측된 현실에는 잘 맞지 않는다. 더 개선해야 할 필요가 있어 보인다.

얼마나 현실적인가? 데이터 분석가가 어떤 일을 하는지 작은 단면을 들여다보고 싶다면 이 책을 추천한다.

Spark로는 어떤 분석이 가능한가?

물론 모든 것이 가능하다고 말할 수 있겠지만, 이를 직접 보여주기는 쉽지 않다.

이 책에서는 음악 추천, 식생 분포 예측, 네트워크 이상 탐지, 위키백과 숨은 의미 분석, 의학 논문 인용 그래프 분석, 택시 운행 데이터 분석, 금융 리스크 추정, 유전체학 데이터 분석, 신경 영상 데이터 분석 이라는 9가지 주제로 시연을 한다.

최대한 Spark의 다재다능함을 보여주기 위해 기본 DataFrame API를 이용해 평균, 표준편차를 구하고, 카이 제곱 통계량을 계산해서 요소간의 독립 사건인지를 확인한다. 또 교차 테이블을 만들어 False Positive와 False Negative의 수를 확인하고 AUC를 계산한다.

나아가서 Spark MLlib를 이용해 Matrix Factorization으로 추천 모델을 만들고, 회귀분석도 시행한다. Decision Tree와 Random Forest 기법도 손쉽게 수행한다. Spark GraphX를 이용해서 네트워크 평균 군집계수를 계산한다.

Spark가 JVM 기반으로 작동한다는 사실을 이용해 Scala, Java 생태계에 만들어져 있는 라이브러리도 잘 가져다 사용한다. Apache Commons Math 라이브러리를 이용해 몬테카를로 시뮬레이션과 회귀분석을 시행한다. GeoJSON 관련 라이브러리를 가져다 지리정보 분석도 한다.

대충 들춰보며 찾아본게 이정도이고, 지식 부족으로 전혀 이해하지 못한 여러가지 개념들을 Spark를 이용해 구현하는 과정을 책을 통해 생생하게 목격할 수 있다.

그럼 아쉬운 점은?

몇몇 주제들은 예제 데이터의 크기가 워낙 커서 로컬 환경에서 따라해보기가 쉽지 않았다. (아예 실패하기도 했다.) 또 금융 데이터는 아예 구할수가 없게 되어 깃헙에 따로 포함을 시켜줬지만 책과는 다른 형태의 데이터라 별도의 주의가 필요하다.

그리고 모든 예제가 spark-shell 기반으로 작업한다는 것을 전제로 하는데 이 많은 코드를 정말 shell 기반으로 작업한게 맞는지 의심이 든다. 몇 번 순서를 실수해서 처음부터 다시 작업해야 하는 상황을 겪었다면 분명 웹에서 Notebook 기반으로 쉽게 작업할 수 있는 Apache Zeppelin을 소개해줬을 것이다.

그래서 어렵게 클러스터 환경을 구해서 Apache Zeppelin을 기반으로 실습을 진행했는데, 뒤로 갈수록 클러스터를 직접 수정할 수 없는 상황에서는 실습을 위한 의존성 관리가 쉽지 않았다.

그리고 3판이 나온다면 Spark 기반의 Deep Learning 분석 내용을 꼭 포함해줬으면 한다.


유난히 생소한 통계 개념이 많이등장해서 정독하는데 오래 걸렸지만 즐거운 시간이었다. 학습 자료가 인터넷에 넘쳐나는 세상에서, 이렇게 양질의 내용이 잘 구조화된 묶음이 책의 존재 이유가 되었으면 한다.

undefined

 

이 책은 스파크를 실제 데이터셋을 기반으로 여러가지 사례를 분석하는 내용으로 이루어져 있다. 이 책을 접할 때 까지 스파크나 스칼라에 대해 공부해 본적이 없었다. 먼저, 불편한 점이 있었다면 초심자로서 처음 설치를 하고 세팅을 하는데에 시간이 많이 들었다. 물론 책의 제목에서 알 수 있듯이 고급(Advanced) 분석이기 때문에 기본적인 설정이나 사용능력은 갖추어야 한다는 측면에서 볼 때 이 책이 잘못한 점은 없다. 다만 사례를 분석하는 만큼 처음 설정에 시간은 많이 쏟지 않고 내용을 따라갈 수 있다면 스파크에 대해 더 친숙하게 다가갈 수 있을 것이라 생각한다. 물론 나 같은 경우 구글 클라우드 플랫폼에 Compute Engine을 구축하여 예제를 실행하느라 시간이 더 걸린 측면이 있다.

 

compute_engine.png

 

또한, REPL 환경에서 작업했기 때문에 작업을 했기 때문에 연습하면서 실행해 놓은 코드를 저장하지 못하는 점이 있었다. 이는 추후에 Jupyter Notebook을 설치하면 해결할 수 있을 것이라 생각한다.

 

spark-sql.png

 

컴파일 된 코드를 사용할 때는 vi 환경이 불편했기 때문에 데스크탑에서 작업을 하고 깃헙을 통해 서버에서 내려받는 방식으로 사용했다.

 

spark-git.png

 

spark-load.png

 

물론 이러한 설치과정이나 설정하는 부분들이 이미 완료되어 있다면 이 책은 사례를 중심으로 빠르게 학습하는데에는 좋은 책이라고 생각한다. 책의 전체를 읽을 필요없이 9가지 주제로 이루어져 자신이 원하는 분야를 선택하고 학습할 수 있어서 빠르게 구현해보고 싶은 사람이라면 훌륭한 선택이 될 것이라 생각한다.

이 책은 스파크 자체에 대한 내용을 다루므로 전체 아키텍쳐에 한 부분을 다루는 것이라 할 수 있다. 만약, ELK 스택을 알고 있다면 하나의 아키텍쳐로 구성할 수도 있을 것 같다.

 

결론을 말하자면, 기존에 스파크에 대한 지식이 있고 설정이 완료된 상태라면 빠르게 구현해보고 테스트 하기 위한 휼륭한 교재라고 생각한다. 만약 분석 결과를 실제로 서비스 하고 싶다면 위에서 언급한 것과 같이 ELK 스택과 같은 오픈소스를 활용할 수 있어야 할 것이다.


들어가기전에

이전 프로젝트에서 엘라스틱서치를 통해서 데이터 분석에 대한 경험을 해볼 수가 있었고, 중요성에 대해서 알 수 있게 되었었습니다. 데이터를 직접 분석해보고 이를 시각화 해보는 과정에서 기존에는 인지하지 못했던 여러 정보들을 얻을 수 있고, 이를 통해 서비스를 개선할 수 있는 다양한 아이디어가 떠오르는 것을 경험해볼 수도 있었습니다. 왜 많은 회사들이 데이터를 다루는 것을 중요하게 생각하고, 이를 위해 어마어마한 투자를 하고 있는지 알 것 같았습니다. 데이터를 분석하는 방법으로는 제가 사용해보았던 엘라스틱서치를 사용할 수도 있고, R이나 스파크 등 다양한 툴들이 존재합니다. 제가 느꼈던 데이터 분석을 위한 툴들의 공통점은 처음 진입하기가 너무 어렵게 느껴진다는 것이었습니다. 머신러닝의 경우에는 내가 감히 접근해도 되는 분야인가 하는 생각이 들 정도로 어려워보였습니다.




책의 느낌

9가지 사례로 익히는 고급 스파크 분석이라는 책을 처음 펼쳐보았을 때도 같은 생각이 들었습니다. 먼저 간단하게 훑어보니 이론적인 설명은 아주 짧게 되어 있고, 책 제목처럼 사례들을 중심으로 되어있었는데 각각의 사례들이 쉽지 않아보였습니다. 그래서 일단은 뒷 내용은 제쳐두고, 앞의 내용을 숙지하자는 생각으로 설명을 읽어가며 명령어들을 하나씩 따라해보았습니다. 스파크에 대한 이론적인 부분에 대한 비중이 적긴 하지만 필요한 내용들에 대해 간단 명료하게 작성되어 있기 때문에 나머지 부수적인 내용은 활용에 대한 부분들이라 필요한 경우에 인터넷을 찾아가며 해도 무관해보였습니다. 엘라스틱서치를 공부할 때도 두꺼운 책을 세세하게 읽어나가는 것보다 조금이라도 빨리 실전 예제를 해보면서 잘 안되는 부분들이나 필요한 부분들을 검색해가며 공부를 했던 것이 더 효과적이었습니다. 예제 또한 너무 동떨어진 내용이 아니고 실생활에서 접할 수 있는 주제들이라서 조금 더 재미있게 따라해볼 수 있었습니다.

 


스파크에 대해서는 이름만 아는 수준이었는데, 책을 읽다보니 엘라스틱서치와 같이 집계를 수행할 수 있는 기능도 제공하고, 머신러닝도 수행할 수 있는 다양한 기능을 제공한다는 것을 알게되었습니다. 사실 따라하는데에 급급해서 이 책의 모든 내용을 이해하기는 힘들었습니다. 하지만 중요한 것은 스파크를 통해 이러한 일들을 할 수가 있고, 필요한 경우 도입을 검토해볼 수 있겠다는 생각을 갖게 되었습니다.


이 책을 통해 누구나 스파크를 시작해볼 수 있겠지만 모든 사람들이 이 책을 이해하기는 힘들 것 같다는 생각이 들었습니다. 개인적으로 이 책은 스파크에 대한 감을 익히는데 좋지만, 입문자가 이해하기는 어렵기 때문에 스파크를 공부해나가며 이 책에 수록된 예제들을 하나하나 이해해나간다면 이 책을 전부 이해했을 때는 스파크에 대해 어느정도 통달한 경지가 되지않을까하는 생각이 들었습니다.



마무리
결론적으로 책의 구성은 나쁘지 않았고, 아직은 저에게 어려운 내용이지만 차차 정복해나가는 재미가 있을 것 같다는 생각이 들었습니다. 이 책에 수록된 내용 외에도 스파크를 활용하는데 필요한 지식들이 더 많이 존재하기 때문에 여러 다른 책들과 검색을 통해 지식을 습득하는 것이 좋을 것 같습니다.



 

 

9가지 사례로 익히는 고급 스파크 분석(2판)

 

스파크를 경험해봤거나 사용 중이지만 좀 더 다양한 방식을 통해 데이터 분석을 하고자 하는 사람이라면 이 책을 읽어보는 것을 적극적으로 추천한다.

 

데이터 분석을 위해서 아파치 스파크에 입문하긴 했으나, 매일 비슷한 상황에서의 분석으로 지쳐 있는 사람이라면, 이 책에 나온 9가지 사례에 대한 내용을 보다 보면 새로운 시각으로 데이터를 볼 수 있는 눈을 키우는 데 도움이 될 거라 생각된다.

 

보통은 하나의 시스템에서 데이터를 분석하므로 매번 쓰던 방식만 사용하고, 데이터의 분석보다는 어떻게 하면 더 잘 가공할 수 있을지에 대한 고민을 더 하게 된다.

이러한 고민이 틀린 것은 아니나 때로는 새로운 기준을 세우고 다른 시각에서 데이터를 보는 것도 필요하다고 생각한다.

엉뚱한 곳에서 다른 시각으로 데이터 분석을 하다 보면 우연히 원하던 데이터를 얻을 수 있는 새로운 인사이트를 얻기도 한다.

 

그러기 위해서는 여러 가지 기능을 사용해보고 다양한 방식으로 데이터를 분석해보아야 하는데 보통 생각하기도 쉽지 않고 경험하기도 어려운 것이 사실이다.

 

이 책에 나오는 9가지 분석 사례는 각각의 데이터가 가지는 특성과 분석 방향이 모두 다르기 때문에 스파크에 존재하는 여러 분석 기능들을 경험해 볼 수 있도록 도움을 준다.

 

타깃으로 하는 데이터도 샘플 데이터지만 적지 않은 양이고 각각의 분석 목적에 맞도록 준비할 수 있도록 하고 있어 실제 데이터 분석에 가깝도록 데이터 분석을 할 수 있게 해준다.

 

책의 제목처럼 내용 자체가 고급 분석이기 때문에 데이터 분석이 무엇인지 잘 모르는 사람에게는 어려운 부분이 많다.

하지만 데이터 분석을 위한 환경 구성도 책의 앞부분의 일부를 할애하여 설명하고 있기 때문에 스파크가 아닌 다른 시스템이나 언어를 사용해서 분석하던 사람도 접근할 수 있도록 배려하였다.

 

더불어 스파크가 1.0에서 2.0으로 변경되면서 추가되거나 변경된 기능들에 대한 내용도 포함되어 있어 최신의 내용도 놓치지 않고 익힐 수 있도록 하고 있다.

 

좋은 내용이 많은 책임에도 불구하고 내용 자체가 쉽지 않아 스파크를 처음 익히는 사람들은 이 책으로 시작하기에는 상당히 많은 시간과 노력이 필요하다. 그만큼 데이터 분석이라는 분야가 어렵고 어려운 것으로 생각된다.

 

지금까지 하던 방식과 다른 방식으로 데이터 분석을 하고 싶은 사람.

내가 사용하고 있는 기능 외에 스파크의 다른 기능들을 알고 싶은 사람.

스파크를 스파크답게 제대로 사용해보고 싶은 사람.

다른 언어나 시스템에서 이미 데이터 분석을 해봤으나 스파크를 사용해보고 싶은 사람.

그 외 본인이 한빛 미디어와 O'REILLY 책이 잘 맞는다는 분들에게는 이 책을 적극적으로 추천한다.

 

이 책 9가지 사례로 익히는 고급 스파크 분석(2판)" 는  [링크] 에서 확인할 수 있다.

총 11장으로 구성되어 있으며 1장과 2장을 제외하면 모두 따라하기 형태로 구성되어 있다. 

1장은 빅데이터 분석하기로 약 5장 분량의 가벼운 개요이다. 
2장은 스칼라에 대한 소개인데 30여장 분량으로 일반적인 프로그래밍 언어 책과는 다르게 '이런게 있어' 하고 빠르게 훑고 지나간다. 친절하게 진행되지는 않는다. 책 제목에 'Advanced'가 들어감에 유의하자. 
3장부터 11장 까지는 목적을 가지고 데이터를 분석해보는 형태로 되어 있다. 

2장에서 스칼라에서 분산처리가 용이함에 대해 이야기 하는데 실험해 볼 수 있는 환경이 준비되지 않아서 아쉬웠다. 나머지 실습 장은 스칼라 및 데이터분석에 대한 이해가 있는 상태에서 따라하면 더 재미있지 않을까 싶다. 

책에는 필요한 부분의 소스조각만 포함되어 있고, 전체 소스는 github에서 받을 수 있다. 

 

 

'9가지 사례로 익히는 고급 스파크 분석'을 읽고

 

벌써 세번째 스파크와 관련된 도서를 읽고있다. 이번에 읽은 책은 '9가치 사례로 익히는 고급 스파크 분석'으로 이름에 고급이라는 단어가 들어가서 혹시 어려운 책은 아닌가 고민했었지만 아주 친절하게 잘 설명되어있었다.

책 두께는 엄청 얇아보였으나 막상 읽을때 걸린 시간은 어지간한 두께의 책들을 읽을때보다 더 걸렸을 정도로 내용이 디테일하다.

 

책의 전반부는 스파크를 처음 하는 사람들을 위해서인지 데이터과학에 대한 설명과 아파치 스파크의 개요를 설명하고 있다. 안타깝게도 스파크에 대한 디테일한 설명이나 레퍼런스를 직접 설명하고 있지는 않아서 스파크를 처음 접하는 사람이 보기에는 쉽지 않을수도 있다.

다만, 스칼라와 스파크의 철학이나 모델과 같은 부분에 대해서 앞에서 설명하고 있다.

 

전반부를 제외하고는 우리가 실무에서 처할 수 있는 각 상황에 대해 실전 예제를 기반으로 하나씩 풀어나가고 있다. 

데이터를 활용하는 예시 서비스에서 항상 가장 먼저 등장하는 추천시스템을 만들면서 추천 품질을 평가하고 맞춰가는 과정, 의사 결정에 도움을 줄 수 있도록 쌓여있는 데이터를 활용하는 법, Unsupervised learning을 통해서 네트워크의 이상 징후를 판단하는 법 등을 코드를 따라서 하나하나 설명해주고 있다.

 

이 책의 좋은점은 각 챕터 하나하나가 정말 실무에서 언제라도 사용할 법한 '고급'예제들이라는 것이다. 예를 들어서 실제로 현업에서 데이터 분석을 통해 이상 징후를 미리 탐지하고자 하는 것은 빈번하게 일어나는 작업이며, 이 작업을 위해서 어떤 기능을 사용할 수 있는지에 대해 이 책의 한 챕터만 따라하면 알 수 있다.

또한, 이런 기능을 개발할때 발생할 수 있는 예외적인 상황이나 고려해야 할 부분들을 차근차근 설명하고 있어서 아주 유익한 도움이 될 수 있다고 생각합니다.

아주 초보가 읽기에는 조금 어려울 수 있고, 기초적인 지식이 있거나 개발 경험이 있는 분들에게는 정말 좋은 가이드북이 될 수 있을 것입니다. 처음부터 자세히 Step by Step 형식으로 내용이 기술되어 있고, 설명된 코드에 해당 코드를 왜 그렇게 작성하였는지도 적혀 있어 내용을 숙지하고 실습을 따라가기에 좋습니다. 또 실제 응용 사례를 기반으로 각 장이 구성되어 있고, 설명되어 있어 '내가 잘 이해하고 있다' 또는 '이런 케이스에서는 이렇게 코드를 작성하고 활용하면 되겠다' 는 느낌이 좀 더 와 닿았습니다.

대량의 데이터셋을 다루는 복잡한 분석을 스파크로 사용해 보는 좋은 기회를 주는 책이다. Python, Java를 많이 사용하는데, 이 책은 스칼라 로 구현되어 살짝 당황 했지만, 스칼라 를 사용하는데 충분한 예시가 주어져 있고, 스칼라를 공부하는 계기가 된것 같습니다. 또한 스파크 스칼라로 구현 되어있기에 스파크가 조금더 친숙하게 다가 온 것 같습니다.

 

책의 내용은 다양한 예제로 구성되어 있고 스파크 2.0 과 1.x 버전대의 바뀐점도 중간중간 설명이 되어있어 1.x 버전대의 사용자들이 2.x 버전대로 로 책의 예제를 실행한다 하여도 생각보다 많이 불편하진 않습니다. 책의 내용이 아주 초급의 내용은 많이 설명하지 않아 초보분들이 보기에는 다소 어렵거나 이해하기가 조금 어려울 수도 있겠지만, 스파크를 활용해야하는 기회가 주어진다면, 스파크의 기본적인 구성과 이해도를 가지고 이책을 본다면 더할 나위 없는 좋은 경험이 될 수 있다고 생각 됩니다. API에 대한 설명은 없지만, 시시때때로 변하는 API와 기능은 스파크 레퍼런스를 참고하고 저자의 의도중 "스파크를 사용한 분석에 있어서 수년간은 이 책이 유용한 자료로 남아있기를 희망한다."  라는 문구가 아주 잘 맞아 떨어져 스파크를 활용하기에 유용한 자료가 될 책임에는 분명한것 같습니다. 

요즘 실리콘밸리는 "속도"죠. 빠르게 변화하는 트렌드를 쫒기 위한 목적도 있지만, 개발자나 데이터 과학자의 높은 급여를 이유로 높은 장비 운영 비용이 들더라도, 빠르게 결과를 낼 수 있는 도구를 선호합니다. Python, Golang, Scala, JavaScript, Swift, Kotlin 같은 언어들이 선호되는 이유기도 합니다.

스파크도 속도 트렌드를 충족하는 도구 입니다. 스파크 이전에 엔지니어들은 여러가지 도구 사이를 헤집고 다니며 작업 도구를 스위칭 해야 했습니다. 스파크는 도구 스위칭을 줄이고, 빠르게 데이터를 분석할 수 있도록 개발 되었습니다.


저는 자바 언어는 알지만 자바 전문 개발자가 아니라 Scala라는 언어를 모르는 상태였습니다. 스파크라는 빅데이터 분석 도구를 사용하는데 Scala가 적합한 언어라 시간이 걸리더라도 이번 기회를 핑계로 삼아 익혀야 겠다고 생각했습니다. Scala라는 새로운 언어를 배우는데 오랜 시간이 걸릴거라는 것은 기우 였습니다. 이미 Python, JavaScript에 익숙하기 때문에 Scala라 언어 레퍼런스는 몇시간만에 읽고, 스파크를 연습하는데 충분 했습니다. 물론 스파크는 Python, Java, R 언어도 지원하지만 Scala를 익힐 기회를 놓칠 수 없었기 때문입니다.

이 책은 프로그래밍 언어 레퍼런스가 아니었습니다. Scala는 익히기 쉬운 언어이므로 개발자라면 몇시간이면 언어 스펙을 읽고 코딩 할 수 있습니다. 물론 Scala로 응용 프로그램을 개발하자면 API에 익숙해져야 하죠. 하지만, 스파크를 다루는 목적이라면 Scala에 빨리 적응 할 수 있었습니다.

이 책의 초반에 이 책은 머신러닝 이론서가 아니라고 설명 하고 있었는데, 아닙니다. 머신러닝 이론과 스파크를 통한 실무 예제를 연결하여 추천 알고리즘 개발, 네트워크 이상 탐지, 의미 분석, 네트워크 분석, 교통 분석, 금융 리스크 추정, 유전체 분석, 신경 영상 분석 과업을 해결하는 과정을 다루고 있습니다. 사용된 알고리즘들은 자주 사용되는 대부분의 알고리즘을 커버 하며, 이미 머신러닝 알고리즘들은 알고 있기 때문인지, 스파크를 통한 데이터 분석 예제를 어려움 없이 수행 할 수 있었습니다.


빅데이터 분석에 스파크는 훌륭한 도구이자 안내자 입니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
9가지 사례로 익히는 고급 스파크 분석(2판)
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
9가지 사례로 익히는 고급 스파크 분석(2판)
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
9가지 사례로 익히는 고급 스파크 분석(2판)
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실