스파크 완벽 가이드: 스파크를 활용한 빅테이터 처리와 분석의 모든 것

Book description

오픈소스 클러스터 컴퓨팅 프레임워크인 스파크의 창시자가 쓴 스파크에 대한 종합 안내서입니다. 스파크 사용법부터 배포, 유지 보수하는 방법까지 포괄적으로 익힐 수 있습니다. 스파크 2의 개선점과 새로운 기능을 자세히 설명합니다. 구조화된 스파크 API의 특징과 공통 기능은 물론이고, 엔드 투 엔드 스트리밍 애플리케이션을 구축하는 새로운 고수준 API인 구조적 스트리밍을 함께 살펴봅니다. 이 책을 읽으면 스파크를 모니터링, 튜닝, 디버깅하는 데 필요한 기본 지식을 습득할 수 있습니다. 나아가 스파크의 확장 머신러닝 라이브러리인 MLlib을 사용하는 방법과 시나리오를 익힐 수 있습니다.

Table of contents

  1. 스파크 완벽 가이드
    1. 지은이 소개
    2. 옮긴이 소개
    3. 추천의 글
    4. 베타리더의 글
    5. 옮긴이의 말 (1/2)
    6. 옮긴이의 말 (2/2)
    7. 지은이의 말
    8. 이 책에 대하여
    9. 감사의 글 (1/7)
    10. 감사의 글 (2/7)
    11. 감사의 글 (3/7)
    12. 감사의 글 (4/7)
    13. 감사의 글 (5/7)
    14. 감사의 글 (6/7)
    15. 감사의 글 (7/7)
  2. 1부 빅데이터와 스파크 간단히 살펴보기
    1. 1장 아파치 스파크란
      1. 1.1 아파치 스파크의 철학
      2. 1.2 스파크의 등장 배경
      3. 1.3 스파크의 역사
      4. 1.4 스파크의 현재와 미래
      5. 1.5 스파크 실행하기
        1. 1.5.1 로컬 환경에 스파크 내려받기
        2. 1.5.2 스파크 대화형 콘솔 실행하기
        3. 1.5.3 클라우드에서 스파크 실행하기
        4. 1.5.4 이 책에서 사용하는 데이터
      6. 1.6 정리
    2. 2장 스파크 간단히 살펴보기
      1. 2.1 스파크의 기본 아키텍처
        1. 2.1.1 스파크 애플리케이션
      2. 2.2 스파크의 다양한 언어 API
      3. 2.3 스파크 API
      4. 2.4 스파크 시작하기
      5. 2.5 SparkSession
      6. 2.6 DataFrame
        1. 2.6.1 파티션
      7. 2.7 트랜스포메이션
        1. 2.7.1 지연 연산
      8. 2.8 액션
      9. 2.9 스파크 UI
      10. 2.10 종합 예제 (1/3)
      11. 2.10 종합 예제 (2/3)
      12. 2.10 종합 예제 (3/3)
        1. 2.10.1 DataFrame과 SQL
      13. 2.11 정리
    3. 3장 스파크 기능 둘러보기
      1. 3.1 운영용 애플리케이션 실행하기
      2. 3.2 Dataset: 타입 안정성을 제공하는 구조적 API
      3. 3.3 구조적 스트리밍 (1/2)
      4. 3.3 구조적 스트리밍 (2/2)
      5. 3.4 머신러닝과 고급 분석 (1/2)
      6. 3.4 머신러닝과 고급 분석 (2/2)
      7. 3.5 저수준 API
      8. 3.6 SparkR
      9. 3.7 스파크의 에코시스템과 패키지
      10. 3.8 정리
  3. 2부 구조적 API: DataFrame, SQL, Dataset
    1. 4장 구조적 API 개요
      1. 4.1 DataFrame과 Dataset
      2. 4.2 스키마
      3. 4.3 스파크의 구조적 데이터 타입 개요
        1. 4.3.1 DataFrame과 Dataset 비교
        2. 4.3.2 컬럼
        3. 4.3.3 로우
        4. 4.3.4 스파크 데이터 타입
      4. 4.4 구조적 API의 실행 과정
        1. 4.4.1 논리적 실행 계획
        2. 4.4.2 물리적 실행 계획
        3. 4.4.3 실행
      5. 4.5 정리
    2. 5장 구조적 API 기본 연산
      1. 5.1 스키마
      2. 5.2 컬럼과 표현식
        1. 5.2.1 컬럼
        2. 5.2.2 표현식
      3. 5.3 레코드와 로우
        1. 5.3.1 로우 생성하기
      4. 5.4 DataFrame의 트랜스포메이션 (1/5)
      5. 5.4 DataFrame의 트랜스포메이션 (2/5)
      6. 5.4 DataFrame의 트랜스포메이션 (3/5)
      7. 5.4 DataFrame의 트랜스포메이션 (4/5)
      8. 5.4 DataFrame의 트랜스포메이션 (5/5)
        1. 5.4.1 DataFrame 생성하기
        2. 5.4.2 select와 selectExpr
        3. 5.4.3 스파크 데이터 타입으로 변환하기
        4. 5.4.4 컬럼 추가하기
        5. 5.4.5 컬럼명 변경하기
        6. 5.4.6 예약 문자와 키워드
        7. 5.4.7 대소문자 구분
        8. 5.4.8 컬럼 제거하기
        9. 5.4.9 컬럼의 데이터 타입 변경하기
        10. 5.4.10 로우 필터링하기
        11. 5.4.11 고유한 로우 얻기
        12. 5.4.12 무작위 샘플 만들기
        13. 5.4.13 임의 분할하기
        14. 5.4.14 로우 합치기와 추가하기
        15. 5.4.15 로우 정렬하기
        16. 5.4.16 로우 수 제한하기
        17. 5.4.17 repartition과 coalesce
        18. 5.4.18 드라이버로 로우 데이터 수집하기
      9. 5.5 정리
    3. 6장 다양한 데이터 타입 다루기
      1. 6.1 API는 어디서 찾을까
      2. 6.2 스파크 데이터 타입으로 변환하기
      3. 6.3 불리언 데이터 타입 다루기
      4. 6.4 수치형 데이터 타입 다루기
      5. 6.5 문자열 데이터 타입 다루기 (1/2)
      6. 6.5 문자열 데이터 타입 다루기 (2/2)
        1. 6.5.1 정규 표현식
      7. 6.6 날짜와 타임스탬프 데이터 타입 다루기 (1/2)
      8. 6.6 날짜와 타임스탬프 데이터 타입 다루기 (2/2)
      9. 6.7 null 값 다루기
        1. 6.7.1 coalesce
        2. 6.7.2 ifnull, nullIf, nvl, nvl2
        3. 6.7.3 drop
        4. 6.7.4 fill
        5. 6.7.5 replace
      10. 6.8 정렬하기
      11. 6.9 복합 데이터 타입 다루기
        1. 6.9.1 구조체
        2. 6.9.2 배열
        3. 6.9.3 맵
      12. 6.10 JSON 다루기
      13. 6.11 사용자 정의 함수
      14. 6.12 Hive UDF
      15. 6.13 정리
    4. 7장 집계 연산
      1. 7.1 집계 함수 (1/2)
      2. 7.1 집계 함수 (2/2)
        1. 7.1.1 count
        2. 7.1.2 countDistinct
        3. 7.1.3 approx_count_distinct
        4. 7.1.4 first와 last
        5. 7.1.5 min과 max
        6. 7.1.6 sum
        7. 7.1.7 sumDistinct
        8. 7.1.8 avg
        9. 7.1.9 분산과 표준편차
        10. 7.1.10 비대칭도와 첨도
        11. 7.1.11 공분산과 상관관계
        12. 7.1.12 복합 데이터 타입의 집계
      3. 7.2 그룹화
        1. 7.2.1 표현식을 이용한 그룹화
        2. 7.2.2 맵을 이용한 그룹화
      4. 7.3 윈도우 함수
      5. 7.4 그룹화 셋 (1/2)
      6. 7.4 그룹화 셋 (2/2)
        1. 7.4.1 롤업
        2. 7.4.2 큐브
        3. 7.4.3 그룹화 메타데이터
        4. 7.4.4 피벗
      7. 7.5 사용자 정의 집계 함수
      8. 7.6 정리
    5. 8장 조인
      1. 8.1 조인 표현식
      2. 8.2 조인 타입
      3. 8.3 내부 조인
      4. 8.4 외부 조인
      5. 8.5 왼쪽 외부 조인
      6. 8.6 오른쪽 외부 조인
      7. 8.7 왼쪽 세미 조인
      8. 8.8 왼쪽 안티 조인
      9. 8.9 자연 조인
      10. 8.10 교차 조인(카테시안 조인)
      11. 8.11 조인 사용 시 문제점
        1. 8.11.1 복합 데이터 타입의 조인
        2. 8.11.2 중복 컬럼명 처리
      12. 8.12 스파크의 조인 수행 방식
        1. 8.12.1 네트워크 통신 전략
      13. 8.13 정리
    6. 9장 데이터소스
      1. 9.1 데이터소스 API의 구조
        1. 9.1.1 읽기 API 구조
        2. 9.1.2 데이터 읽기의 기초
        3. 9.1.3 쓰기 API 구조
        4. 9.1.4 데이터 쓰기의 기초
      2. 9.2 CSV 파일
        1. 9.2.1 CSV 옵션
        2. 9.2.2 CSV 파일 읽기
        3. 9.2.3 CSV 파일 쓰기
      3. 9.3 JSON 파일
        1. 9.3.1 JSON 옵션
        2. 9.3.2 JSON 파일 읽기
        3. 9.3.3 JSON 파일 쓰기
      4. 9.4 파케이 파일
        1. 9.4.1 파케이 파일 읽기
        2. 9.4.2 파케이 파일 쓰기
      5. 9.5 ORC 파일
        1. 9.5.1 ORC 파일 읽기
        2. 9.5.2 ORC 파일 쓰기
      6. 9.6 SQL 데이터베이스 (1/2)
      7. 9.6 SQL 데이터베이스 (2/2)
        1. 9.6.1 SQL 데이터베이스 읽기
        2. 9.6.2 쿼리 푸시다운
        3. 9.6.3 SQL 데이터베이스 쓰기
      8. 9.7 텍스트 파일
        1. 9.7.1 텍스트 파일 읽기
        2. 9.7.2 텍스트 파일 쓰기
      9. 9.8 고급 I/O 개념
        1. 9.8.1 분할 가능한 파일 타입과 압축 방식
        2. 9.8.2 병렬로 데이터 읽기
        3. 9.8.3 병렬로 데이터 쓰기
        4. 9.8.4 복합 데이터 유형 쓰기
        5. 9.8.5 파일 크기 관리
      10. 9.9 정리
    7. 10장 스파크 SQL
      1. 10.1 SQL이란
      2. 10.2 빅데이터와 SQL: 아파치 하이브
      3. 10.3 빅데이터와 SQL: 스파크 SQL
        1. 10.3.1 스파크와 하이브의 관계
      4. 10.4 스파크 SQL 쿼리 실행 방법
        1. 10.4.1 스파크 SQL CLI
        2. 10.4.2 스파크의 프로그래밍 SQL 인터페이스
        3. 10.4.3 스파크 SQL 쓰리프트 JDBC/ODBC 서버
      5. 10.5 카탈로그
      6. 10.6 테이블
        1. 10.6.1 스파크 관리형 테이블
        2. 10.6.2 테이블 생성하기
        3. 10.6.3 외부 테이블 생성하기
        4. 10.6.4 테이블에 데이터 삽입하기
        5. 10.6.5 테이블 메타데이터 확인하기
        6. 10.6.6 테이블 메타데이터 갱신하기
        7. 10.6.7 테이블 제거하기
        8. 10.6.8 테이블 캐싱하기
      7. 10.7 뷰
        1. 10.7.1 뷰 생성하기
        2. 10.7.2 뷰 제거하기
      8. 10.8 데이터베이스
        1. 10.8.1 데이터베이스 생성하기
        2. 10.8.2 데이터베이스 설정하기
        3. 10.8.3 데이터베이스 제거하기
      9. 10.9 select 구문
        1. 10.9.1 case...when...then 구문
      10. 10.10 고급 주제
        1. 10.10.1 복합 데이터 타입
        2. 10.10.2 함수
        3. 10.10.3 서브쿼리
      11. 10.11 다양한 기능
        1. 10.11.1 설정
        2. 10.11.2 SQL에서 설정값 지정하기
      12. 10.12 정리
    8. 11장 Dataset
      1. 11.1 Dataset을 사용할 시기
      2. 11.2 Dataset 생성
        1. 11.2.1 자바: Encoders
        2. 11.2.2 스칼라: 케이스 클래스
      3. 11.3 액션
      4. 11.4 트랜스포메이션
        1. 11.4.1 필터링
        2. 11.4.2 매핑
      5. 11.5 조인
      6. 11.6 그룹화와 집계
      7. 11.7 정리
  4. 3부 저수준 API
    1. 12장 RDD
      1. 12.1 저수준 API란
        1. 12.1.1 저수준 API는 언제 사용할까
        2. 12.1.2 저수준 API는 어떻게 사용할까
      2. 12.2 RDD 개요
        1. 12.2.1 RDD 유형
        2. 12.2.2 RDD는 언제 사용할까
        3. 12.2.3 Dataset과 RDD의 케이스 클래스
      3. 12.3 RDD 생성하기
        1. 12.3.1 DataFrame, Dataset으로 RDD 생성하기
        2. 12.3.2 로컬 컬렉션으로 RDD 생성하기
        3. 12.3.3 데이터소스로 RDD 생성하기
      4. 12.4 RDD 다루기
      5. 12.5 트랜스포메이션
        1. 12.5.1 distinct
        2. 12.5.2 filter
        3. 12.5.3 map
        4. 12.5.4 sortBy
        5. 12.5.5 randomSplit
      6. 12.6 액션
        1. 12.6.1 reduce
        2. 12.6.2 count
        3. 12.6.3 first
        4. 12.6.4 max와 min
        5. 12.6.5 take
      7. 12.7 파일 저장하기
        1. 12.7.1 saveAsTextFile
        2. 12.7.2 시퀀스 파일
        3. 12.7.3 하둡 파일
      8. 12.8 캐싱
      9. 12.9 체크포인팅
      10. 12.10 RDD를 시스템 명령으로 전송하기
        1. 12.10.1 mapPartitions
        2. 12.10.2 foreachPartition
        3. 12.10.3 glom
      11. 12.11 정리
    2. 13장 RDD 고급 개념
      1. 13.1 키-값 형태의 기초(키-값 형태의 RDD)
        1. 13.1.1 keyBy
        2. 13.1.2 값 매핑하기
        3. 13.1.3 키와 값 추출하기
        4. 13.1.4 lookup
        5. 13.1.5 sampleByKey
      2. 13.2 집계 (1/2)
      3. 13.2 집계 (2/2)
        1. 13.2.1 countByKey
        2. 13.2.2 집계 연산 구현 방식 이해하기
        3. 13.2.3 기타 집계 메서드
      4. 13.3 cogroup
      5. 13.4 조인
        1. 13.4.1 내부 조인
        2. 13.4.2 zip
      6. 13.5 파티션 제어하기
        1. 13.5.1 coalesce
        2. 13.5.2 repartition
        3. 13.5.3 repartitionAndSortWithinPartitions
        4. 13.5.4 사용자 정의 파티셔닝
      7. 13.6 사용자 정의 직렬화
      8. 13.7 정리
    3. 14장 분산형 공유 변수
      1. 14.1 브로드캐스트 변수
      2. 14.2 어큐뮬레이터 (1/2)
      3. 14.2 어큐뮬레이터 (2/2)
        1. 14.2.1 기본 예제
        2. 14.2.2 사용자 정의 어큐뮬레이터
      4. 14.3 정리
  5. 4부 운영용 애플리케이션
    1. 15장 클러스터에서 스파크 실행하기
      1. 15.1 스파크 애플리케이션의 아키텍처
        1. 15.1.1 실행 모드
      2. 15.2 스파크 애플리케이션의 생애주기(스파크 외부)
        1. 15.2.1 클라이언트 요청
        2. 15.2.2 시작
        3. 15.2.3 실행
        4. 15.2.4 완료
      3. 15.3 스파크 애플리케이션의 생애주기(스파크 내부) (1/2)
      4. 15.3 스파크 애플리케이션의 생애주기(스파크 내부) (2/2)
        1. 15.3.1 SparkSession
        2. 15.3.2 논리적 명령
        3. 15.3.3 스파크 잡
        4. 15.3.4 스테이지
        5. 15.3.5 태스크
      5. 15.4 세부 실행 과정
        1. 15.4.1 파이프라이닝
        2. 15.4.2 셔플 결과 저장
      6. 15.5 정리
    2. 16장 스파크 애플리케이션 개발하기
      1. 16.1 스파크 애플리케이션 작성하기
        1. 16.1.1 간단한 스칼라 기반 앱
        2. 16.1.2 파이썬 애플리케이션 작성하기
        3. 16.1.3 자바 애플리케이션 작성하기
      2. 16.2 스파크 애플리케이션 테스트
        1. 16.2.1 전략적 원칙
        2. 16.2.2 테스트 코드 작성 시 고려사항
        3. 16.2.3 단위 테스트 프레임워크에 연결하기
        4. 16.2.4 데이터소스 연결하기
      3. 16.3 개발 프로세스
      4. 16.4 애플리케이션 시작하기
        1. 16.4.1 애플리케이션 시작 예제
      5. 16.5 애플리케이션 환경 설정하기 (1/2)
      6. 16.5 애플리케이션 환경 설정하기 (2/2)
        1. 16.5.1 SparkConf
        2. 16.5.2 애플리케이션 속성
        3. 16.5.3 런타임 속성
        4. 16.5.4 실행 속성
        5. 16.5.5 메모리 관리 설정
        6. 16.5.6 셔플 동작방식 설정
        7. 16.5.7 환경변수
        8. 16.5.8 애플리케이션에서 잡 스케줄링
      7. 16.6 정리
    3. 17장 스파크 배포 환경
      1. 17.1 스파크 애플리케이션 실행을 위한 클러스터 환경
        1. 17.1.1 설치형 클러스터 배포 환경
        2. 17.1.2 클라우드 배포 환경
      2. 17.2 클러스터 매니저 (1/2)
      3. 17.2 클러스터 매니저 (2/2)
        1. 17.2.1 스탠드얼론 모드
        2. 17.2.2 YARN에서 스파크 실행하기
        3. 17.2.3 YARN 환경의 스파크 애플리케이션 설정하기
        4. 17.2.4 메소스에서 스파크 실행하기
        5. 17.2.5 보안 관련 설정
        6. 17.2.6 클러스터 네트워크 설정
        7. 17.2.7 애플리케이션 스케줄링
      4. 17.3 기타 고려사항
      5. 17.4 정리
    4. 18장 모니터링과 디버깅
      1. 18.1 모니터링 범위
      2. 18.2 모니터링 대상
        1. 18.2.1 드라이버와 익스큐터 프로세스
        2. 18.2.2 쿼리, 잡, 스테이지, 태스크
      3. 18.3 스파크 로그
      4. 18.4 스파크 UI (1/2)
      5. 18.4 스파크 UI (2/2)
        1. 18.4.1 스파크 REST API
        2. 18.4.2 스파크 UI 히스토리 서버
      6. 18.5 디버깅 및 스파크 응급 처치 (1/3)
      7. 18.5 디버깅 및 스파크 응급 처치 (2/3)
      8. 18.5 디버깅 및 스파크 응급 처치 (3/3)
        1. 18.5.1 스파크 애플리케이션이 시작되지 않는 경우
        2. 18.5.2 스파크 애플리케이션 실행 전에 오류가 발생한 경우
        3. 18.5.3 스파크 애플리케이션 실행 중에 오류가 발생한 경우
        4. 18.5.4 느리거나 뒤처진 태스크
        5. 18.5.5 느린 집계 속도
        6. 18.5.6 느린 조인 속도
        7. 18.5.7 느린 읽기와 쓰기 속도
        8. 18.5.8 드라이버 OutOfMemoryError 또는 응답 없음
        9. 18.5.9 익스큐터 OutOfMemoryError 또는 응답 없음
        10. 18.5.10 의도하지 않은 null 값이 있는 결과 데이터
        11. 18.5.11 디스크 공간 없음 오류
        12. 18.5.12 직렬화 오류
      9. 18.6 정리
    5. 19장 성능 튜닝
      1. 19.1 간접적인 성능 향상 기법 (1/2)
      2. 19.1 간접적인 성능 향상 기법 (2/2)
        1. 19.1.1 설계 방안
        2. 19.1.2 RDD 객체 직렬화
        3. 19.1.3 클러스터 설정
        4. 19.1.4 스케줄링
        5. 19.1.5 보관용 데이터
        6. 19.1.6 셔플 설정
        7. 19.1.7 메모리 부족과 가비지 컬렉션
      3. 19.2 직접적인 성능 향상 기법 (1/2)
      4. 19.2 직접적인 성능 향상 기법 (2/2)
        1. 19.2.1 병렬화
        2. 19.2.2 향상된 필터링
        3. 19.2.3 파티션 재분배와 병합
        4. 19.2.4 사용자 정의 함수(UDF)
        5. 19.2.5 임시 데이터 저장소(캐싱)
        6. 19.2.6 조인
        7. 19.2.7 집계
        8. 19.2.8 브로드캐스트 변수
      5. 19.3 정리
  6. 5부 스트리밍
    1. 20장 스트림 처리의 기초
      1. 20.1 스트림 처리란
        1. 20.1.1 스트림 처리 사례
        2. 20.1.2 스트림 처리의 장점
        3. 20.1.3 스트림 처리의 과제
      2. 20.2 스트림 처리의 핵심 설계 개념
        1. 20.2.1 레코드 단위 처리와 선언형 API
        2. 20.2.2 이벤트 시간과 처리 시간
        3. 20.2.3 연속형 처리와 마이크로 배치 처리
      3. 20.3 스파크의 스트리밍 API
        1. 20.3.1 DStream API
        2. 20.3.2 구조적 스트리밍
      4. 20.4 정리
    2. 21장 구조적 스트리밍의 기초
      1. 21.1 구조적 스트리밍의 기초
      2. 21.2 핵심 개념
        1. 21.2.1 트랜스포메이션과 액션
        2. 21.2.2 입력 소스
        3. 21.2.3 싱크
        4. 21.2.4 출력 모드
        5. 21.2.5 트리거
        6. 21.2.6 이벤트 시간 처리
      3. 21.3 구조적 스트리밍 활용
      4. 21.4 스트림 트랜스포메이션
        1. 21.4.1 선택과 필터링
        2. 21.4.2 집계
        3. 21.4.3 조인
      5. 21.5 입력과 출력 (1/3)
      6. 21.5 입력과 출력 (2/3)
      7. 21.5 입력과 출력 (3/3)
        1. 21.5.1 데이터를 읽고 쓰는 장소(소스와 싱크)
        2. 21.5.2 카프카 소스에서 메시지 읽기
        3. 21.5.3 카프카 싱크에 메시지 쓰기
        4. 21.5.4 데이터 출력 방법(출력 모드)
        5. 21.5.5 데이터 출력 시점(트리거)
      8. 21.6 스트리밍 Dataset API
      9. 21.7 정리
    3. 22장 이벤트 시간과 상태 기반 처리
      1. 22.1 이벤트 시간 처리
      2. 22.2 상태 기반 처리
      3. 22.3 임의적인 상태 기반 처리
      4. 22.4 이벤트 시간 처리의 기본
      5. 22.5 이벤트 시간 윈도우 (1/2)
      6. 22.5 이벤트 시간 윈도우 (2/2)
        1. 22.5.1 텀블링 윈도우
        2. 22.5.2 워터마크로 지연 데이터 제어하기
      7. 22.6 스트림에서 중복 데이터 제거하기
      8. 22.7 임의적인 상태 기반 처리 (1/3)
      9. 22.7 임의적인 상태 기반 처리 (2/3)
      10. 22.7 임의적인 상태 기반 처리 (3/3)
        1. 22.7.1 타임아웃
        2. 22.7.2 출력 모드
        3. 22.7.3 mapGroupsWithState
        4. 22.7.4 flatMapGroupsWithState
      11. 22.8 정리
    4. 23장 운영 환경에서의 구조적 스트리밍
      1. 23.1 내고장성과 체크포인팅
      2. 23.2 애플리케이션 변경하기
        1. 23.2.1 스트리밍 애플리케이션 코드 업데이트하기
        2. 23.2.2 스파크 버전 업데이트하기
        3. 23.2.3 애플리케이션의 초기 규모 산정과 재조정하기
      3. 23.3 메트릭과 모니터링
        1. 23.3.1 쿼리 상태
        2. 23.3.2 최근 진행 상황
        3. 23.3.3 스파크 UI
      4. 23.4 알림
      5. 23.5 스트리밍 리스너를 사용한 고급 모니터링
      6. 23.6 정리
  7. 6부 고급 분석과 머신러닝
    1. 24장 고급 분석과 머신러닝 개요
      1. 24.1 고급 분석에 대한 짧은 입문서 (1/2)
      2. 24.1 고급 분석에 대한 짧은 입문서 (2/2)
        1. 24.1.1 지도 학습
        2. 24.1.2 추천
        3. 24.1.3 비지도 학습
        4. 24.1.4 그래프 분석
        5. 24.1.5 고급 분석 프로세스
      3. 24.2 스파크의 고급 분석 툴킷
        1. 24.2.1 MLlib이란
      4. 24.3 고수준 MLlib의 개념
      5. 24.4 MLlib 실제로 사용하기 (1/3)
      6. 24.4 MLlib 실제로 사용하기 (2/3)
      7. 24.4 MLlib 실제로 사용하기 (3/3)
        1. 24.4.1 변환자를 사용해서 피처 엔지니어링 수행하기
        2. 24.4.2 추정자
        3. 24.4.3 워크플로를 파이프라인으로 만들기
        4. 24.4.4 모델 학습 및 평가
        5. 24.4.5 모델 저장 및 적용
      8. 24.5 모델 배포 방식
      9. 24.6 정리
    2. 25장 데이터 전처리 및 피처 엔지니어링
      1. 25.1 사용 목적에 따라 모델 서식 지정하기
      2. 25.2 변환자
      3. 25.3 전처리 추정자
        1. 25.3.1 변환자 속성 정의하기
      4. 25.4 고수준 변환자
        1. 25.4.1 RFormula
        2. 25.4.2 SQL 변환자
        3. 25.4.3 벡터 조합기
      5. 25.5 연속형 특징 처리하기 (1/2)
      6. 25.5 연속형 특징 처리하기 (2/2)
        1. 25.5.1 버켓팅
        2. 25.5.2 스케일링과 정규화
        3. 25.5.3 StandardScaler
      7. 25.6 범주형 특징 처리하기
        1. 25.6.1 StringIndexer
        2. 25.6.2 색인된 값을 텍스트로 변환하기
        3. 25.6.3 벡터 인덱싱하기
        4. 25.6.4 원-핫 인코딩
      8. 25.7 텍스트 데이터 변환자 (1/3)
      9. 25.7 텍스트 데이터 변환자 (2/3)
      10. 25.7 텍스트 데이터 변환자 (3/3)
        1. 25.7.1 텍스트 토큰화하기
        2. 25.7.2 일반적인 단어 제거하기
        3. 25.7.3 단어 조합 만들기
        4. 25.7.4 단어를 숫자로 변환하기
        5. 25.7.5 Word2Vec
      11. 25.8 특징 조작하기
        1. 25.8.1 주성분 분석
        2. 25.8.2 상호작용
        3. 25.8.3 다항식 전개
      12. 25.9 특징 선택
        1. 25.9.1 ChiSqSelector
      13. 25.10 고급 주제
        1. 25.10.1 변환자 저장하기
        2. 25.10.2 사용자 정의 변환자 작성하기
      14. 25.11 정리
    3. 26장 분류
      1. 26.1 활용 사례
      2. 26.2 분류 유형
        1. 26.2.1 이진 분류
        2. 26.2.2 다중 클래스 분류
        3. 26.2.3 다중 레이블 분류
      3. 26.3 MLlib의 분류 모델
        1. 26.3.1 모델 확장성
      4. 26.4 로지스틱 회귀
        1. 26.4.1 모델 하이퍼파라미터
        2. 26.4.2 학습 파라미터
        3. 26.4.3 예측 파라미터
        4. 26.4.4 실습 예제
        5. 26.4.5 모델 요약
      5. 26.5 의사결정트리
        1. 26.5.1 모델 하이퍼파라미터
        2. 26.5.2 학습 파라미터
        3. 26.5.3 예측 파라미터
      6. 26.6 랜덤 포레스트와 그래디언트 부스티드 트리
        1. 26.6.1 모델 하이퍼파라미터
        2. 26.6.2 학습 파라미터
        3. 26.6.3 예측 파라미터
      7. 26.7 나이브 베이즈
        1. 26.7.1 모델 하이퍼파라미터
        2. 26.7.2 학습 파라미터
        3. 26.7.3 예측 파라미터
      8. 26.8 분류와 자동 모델 튜닝을 위한 평가기
      9. 26.9 세부 평가지표
      10. 26.10 일대다 분류기
      11. 26.11 다층 퍼셉트론
      12. 26.12 정리
    4. 27장 회귀
      1. 27.1 활용 사례
      2. 27.2 MLlib에서 제공하는 회귀 모델
        1. 27.2.1 모델 확장성
      3. 27.3 선형 회귀
        1. 27.3.1 모델 하이퍼파라미터
        2. 27.3.2 학습 하이퍼파라미터
        3. 27.3.3 실습 예제
        4. 27.3.4 학습 내용 요약
      4. 27.4 일반화 선형 회귀
        1. 27.4.1 모델 하이퍼파라미터
        2. 27.4.2 학습 파라미터
        3. 27.4.3 예측 파라미터
        4. 27.4.4 실습 예제
        5. 27.4.5 학습 내용 요약
      5. 27.5 의사결정트리
        1. 27.5.1 모델 하이퍼파라미터
        2. 27.5.2 학습 파라미터
        3. 27.5.3 실습 예제
      6. 27.6 랜덤 포레스트와 그래디언트 부스티드 트리
        1. 27.6.1 모델 하이퍼파라미터
        2. 27.6.2 학습 파라미터
        3. 27.6.3 실습 예제
      7. 27.7 고급 방법론
        1. 27.7.1 생존 회귀(가속 수명 시간 모델)
        2. 27.7.2 등위 회귀
      8. 27.8 평가기와 모델 튜닝 자동화
      9. 27.9 평가지표
      10. 27.10 정리
    5. 28장 추천
      1. 28.1 활용 사례
      2. 28.2 교차최소제곱 알고리즘을 사용하여 협업 필터링 구현하기
        1. 28.2.1 모델 하이퍼파라미터
        2. 28.2.2 학습 파라미터
        3. 28.2.3 예측 파라미터
        4. 28.2.4 실습 예제
      3. 28.3 추천을 위한 평가기
      4. 28.4 성과 평가지표
        1. 28.4.1 회귀 평가지표
        2. 28.4.2 순위 평가지표
      5. 28.5 빈발 패턴 마이닝
      6. 28.6 정리
    6. 29장 비지도 학습
      1. 29.1 활용 사례
      2. 29.2 모델 확장성
      3. 29.3 k-평균
        1. 29.3.1 모델 하이퍼파라미터
        2. 29.3.2 학습 파라미터
        3. 29.3.3 실습 예제
        4. 29.3.4 k-평균 평가지표 요약 정보
      4. 29.4 이분법 k-평균
        1. 29.4.1 모델 하이퍼파라미터
        2. 29.4.2 학습 파라미터
        3. 29.4.3 실습 예제
        4. 29.4.4 이분법 k-평균 요약 정보
      5. 29.5 가우시안 혼합 모델
        1. 29.5.1 모델 하이퍼파라미터
        2. 29.5.2 학습 파라미터
        3. 29.5.3 실습 예제
        4. 29.5.4 가우시안 혼합 모델 요약 정보
      6. 29.6 잠재 디리클레 할당
        1. 29.6.1 모델 하이퍼파라미터
        2. 29.6.2 학습 파라미터
        3. 29.6.3 예측 파라미터
        4. 29.6.4 실습 예제
      7. 29.7 정리
    7. 30장 그래프 분석
      1. 30.1 그래프 작성하기
      2. 30.2 그래프 쿼리하기
        1. 30.2.1 서브그래프
      3. 30.3 모티프 찾기
      4. 30.4 그래프 알고리즘 (1/2)
      5. 30.4 그래프 알고리즘 (2/2)
        1. 30.4.1 페이지랭크
        2. 30.4.2 In-Degree와 Out-Degree 지표
        3. 30.4.3 너비 우선 탐색
        4. 30.4.4 연결 요소
        5. 30.4.5 강한 연결 요소
        6. 30.4.6 고급 작업
      6. 30.5 정리
    8. 31장 딥러닝
      1. 31.1 딥러닝이란
      2. 31.2 스파크에서 딥러닝을 사용하는 방법
      3. 31.3 딥러닝 라이브러리
        1. 31.3.1 MLlib에서 지원하는 신경망
        2. 31.3.2 텐서프레임
        3. 31.3.3 BigDL
        4. 31.3.4 TensorFlowOnSpark
        5. 31.3.5 DeepLearning4J
        6. 31.3.6 딥러닝 파이프라인
      4. 31.4 딥러닝 파이프라인을 사용한 간단한 예제 (1/2)
      5. 31.4 딥러닝 파이프라인을 사용한 간단한 예제 (2/2)
        1. 31.4.1 설정하기
        2. 31.4.2 이미지와 DataFrame
        3. 31.4.3 전이 학습
        4. 31.4.4 인기 있는 표준 모델 사용하기
      6. 31.5 정리
  8. 7부 에코시스템
    1. 32장 언어별 특성: 파이썬(PySpark)과 R(SparkR, sparklyr)
      1. 32.1 PySpark
        1. 32.1.1 PySpark의 근본적인 차이점
        2. 32.1.2 Pandas 통합하기
      2. 32.2 R로 스파크 사용하기 (1/3)
      3. 32.2 R로 스파크 사용하기 (2/3)
      4. 32.2 R로 스파크 사용하기 (3/3)
        1. 32.2.1 SparkR
        2. 32.2.2 sparklyr
      5. 32.3 정리
    2. 33장 에코시스템과 커뮤니티
      1. 33.1 스파크 패키지
        1. 33.1.1 인기 패키지 요약
        2. 33.1.2 스파크 패키지 사용하기
        3. 33.1.3 외부 패키지
      2. 33.2 커뮤니티
        1. 33.2.1 스파크 서밋
        2. 33.2.2 지역별 밋업
      3. 33.3 정리
  9. 부록 A 스파크 설치 및 실행
    1. A.1 스파크 실행 환경 구성하기
    2. A.2 스파크 내려받기
    3. A.3 스파크 실행하기
      1. A.3.1 스파크 셸 이용하기
      2. A.3.2 데이터브릭스 이용하기
      3. A.3.3 도커 이용하기
    4. A.4 코드 예제 내려받기
  10. 부록 B 더블린 원정대: 스파크 서밋 2017 더블린 참관기
    1. B.1 품다
    2. B.2 준비하다
    3. B.3 함께하다
    4. B.4 느끼다
      1. B.4.1 만나다
      2. B.4.2 얻다
      3. B.4.3 되새기다
    5. B.5 나누다
    6. B.6 경험하다
    7. B.7 바라다
  11. 찾아보기 (1/3)
  12. 찾아보기 (2/3)
  13. 찾아보기 (3/3)

Product information

  • Title: 스파크 완벽 가이드: 스파크를 활용한 빅테이터 처리와 분석의 모든 것
  • Author(s): 우성한, 이영호, 강재원, 빌 체임버스, 마테이 자하리아
  • Release date: January 2019
  • Publisher(s): Hanbit Media, Inc.
  • ISBN: 9791162241288