더북(TheBook)

시그니처에서도 볼 수 있듯이, 이 메서드를 호출하려면 Dataset 내용을 해석할 방법을 정의한 Encoder 객체를 전달해야 한다. 대부분의 자바 및 스칼라 기본 타입(예: String, Int 등)은 이미 Encoder로 암시적 변환되기 때문에 String이나 Double 등으로 구성한 Dataset은 특별한 작업 없이 바로 as 메서드로 변환할 수 있다.

val stringDataSet = spark.read.text("path/to/file").as[String]

 

기타 다른 객체를 Dataset에 사용할 경우 Encoder를 직접 작성하거나 일반 자바 빈(bean) 클래스의 Encoder를 쓸 수 있다. 자바 빈 클래스는 기본 타입이나 기본 타입의 래퍼 클래스(Integer, Double 클래스 등), BigDecimal, Date, Timestamp, 배열, 리스트 타입의 필드만 포함할 수 있으며, 다른 자바 빈을 필드로 가질 수도 있다.

지금까지 살펴본 DataFrame과 같은 방법으로 Dataset의 칼럼을 다룰 수 있다. Dataset 공식 API 문서(http://mng.bz/3EQc)에서 RDD 및 DataFrame API와 유사한 Dataset 변환 연산자와 행동 연산자를 참고할 수 있다.

스파크 커뮤니티는 Dataset을 지속적으로 개선하면서 스파크의 다른 컴포넌트와도 더 밀접하게 통합할 것이다. 그러니 Dataset 변화를 계속 지켜보자.

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