더북(TheBook)

5.1.1 RDD에서 DataFrame 생성

 

DataFrame을 생성할 때는 데이터를 먼저 RDD로 로드한 후 DataFrame으로 변환하는 방법을 가장 많이 사용한다. 예를 들어 로그 파일을 DataFrame으로 가져오려면 먼저 파일을 RDD로 로드해 각 줄을 파싱하고, 로그의 각 항목을 구성하는 하위 요소를 파악해야 한다. 이러한 정형화 과정을 거쳐야만 로그 데이터를 DataFrame으로 활용할 수 있다. 다시 말해 비정형 데이터에 DataFrame API를 사용하려면 먼저 이 데이터를 RDD로 로드하고 변환한 후 이 RDD에서 DataFrame을 생성해야 한다.

RDD에서 DataFrame을 생성하는 방법은 세 가지가 있다.

로우의 데이터를 튜플 형태로 저장한 RDD를 사용하는 방법

케이스 클래스를 사용하는 방법

스키마를 명시적으로 지정하는 방법

첫 번째 방법은 가장 기초적이고 간단하지만 스키마 속성을 전혀 지정할 수 없기 때문에 다소 제한적이다. 두 번째 방법은 케이스 클래스를 작성하는 것으로 조금 더 복잡하지만, 첫 번째 방법만큼 제한적이지 않다. 세 번째 방법은 스키마를 명시적으로 지정하는 방법으로 마치 스파크 표준처럼 널리 사용한다. 첫 번째와 두 번째 방법에서는 스키마를 간접적으로 지정(즉, 추론)한다.

이 절에서는 세 가지 방법을 차례대로 다룬다. 하지만 그 전에 몇 가지 사전 준비물이 있다. 먼저 SparkSession 객체와 DataFrame 변환에 필요한 암시적 메서드들, 그리고 이 장 전반에서 사용할 예제 데이터셋을 마련해야 한다.

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