더북(TheBook)

3장에서 DataFrame을 사용했던 기억을 다시 떠올려 보자. 스파크에서는 DataFrame으로 정형 데이터(structured data)(로우와 칼럼으로 구성되며, 각 칼럼 값이 특정 타입으로 제한된 데이터 구조)를 다룰 수 있다. 이 정형 데이터를 구성하고 질의(query)하는 가장 일반적인 방법은 관계형 데이터베이스에서 자주 사용하는 SQL(Structured Query Language)이다. 2부 첫 번째 주제로 이 SQL 이름을 이어받은 스파크 SQL을 소개한다.

5장에서는 DataFrame API를 세세히 다룬다. 5.1절에서는 먼저 RDD를 DataFrame으로 변환하는 방법을 알아본다. 그다음 DataFrame API를 사용해 Stack Exchange 웹 사이트의 샘플 데이터셋에 선택, 필터링, 정렬, 그루핑, 조인 연산 등을 수행한다. 또 DataFrame의 SQL 함수를 사용하는 방법과 DataFrame을 다시 RDD로 변환하는 방법을 알아본다.

5.2절에서는 스파크 버전 1.6에서 처음 등장한 Dataset을 간략하게 소개한다. 스파크 버전 2.0부터는 DataFrameDataset의 일종, 즉 Row 객체를 요소로 포함하는 Dataset으로 구현했다.

5.3절에서는 SQL 쿼리로 DataFrame을 생성하는 방법을 살펴본 후 DataFrame 데이터에 SQL 쿼리를 실행할 수 있는 방법 세 가지(스파크 프로그램, 스파크 SQL 셸, 스파크 쓰리프트(Thrift)서버)를 소개한다. 5.4절에서는 다양한 소스의 외부 데이터를 로드하고 저장하는 방법을 알아본다. 5.5절에서는 스파크 SQL의 카탈리스트 최적화 엔진을 설명하며, 5.6절에서는 스파크 성능을 다방면으로 개선한 텅스텐 프로젝트를 소개한다.

이 장에서 소개하는 내용을 제대로 이해하려면 SQL 기본 지식이 필요하다. SQL을 공부할 수 있는 좋은 자료로 w3schools.com의 SQL 튜토리얼(https://www.w3schools.com/SQL) 을 추천한다. 하이브(하둡 기반 분산 웨어하우스)에 익숙하다면 이 장을 이해하기가 더 수월할 것이다.

또 실습 코드를 실행할 수 있는 HDFS 클러스터를 준비해 두는 편이 좋다. 가상 머신에 HDFS를 싱글 모드(http://mng.bz/Bu4d)로 이미 설치해 두었으니 활용하기 바란다. 자, 갈 길이 멀다. 어서 출발하자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.