더북(TheBook)

5.4.3 데이터 불러오기

 

SparkSessionread 필드로 제공되는 org.apache.spark.sql.DataFrameReader 객체를 사용해 데이터를 DataFrame으로 불러올 수 있다. DataFrameReader 사용법은 DataFrameWriter와 거의 동일하다. DataFrameReader 설정 함수로 format, option, options를 사용할 수 있다. 반면 DataFrameWriter와 달리 schema 함수로 DataFrame 스키마를 지정할 수 있다. 스파크는 데이터 소스의 스키마를 대부분 자동으로 감지하지만, 스키마를 직접 지정하면 그만큼 연산 속도를 높일 수 있다.

DataFrameWritersave 메서드와 유사하게 DataFrameReaderload 메서드를 사용해 데이터 소스에서 데이터를 불러올 수 있다. DataFrameReader의 단축 메서드(json, orc, parquet)도 DataFrameWriter와 유사한 방식으로 구현했다. 다시 말해 각 단축 메서드는 먼저 내부적으로 format을 호출한 후 load 메서드를 호출한다.

table 함수를 사용해 하이브 메타스토어에 등록된 테이블에서 DataFrame을 불러올 수 있다. 예를 들어 앞 예제의 SELECT * FROM POSTS 명령을 실행하는 대신 다음 두 가지 방법으로 posts 테이블을 불러올 수 있다.

val postsDf = spark.read.table("posts")
val postsDf = spark.table("posts")
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.