5.4.3 데이터 불러오기
SparkSession의 read 필드로 제공되는 org.apache.spark.sql.DataFrameReader 객체를 사용해 데이터를 DataFrame으로 불러올 수 있다. DataFrameReader 사용법은 DataFrameWriter와 거의 동일하다. DataFrameReader 설정 함수로 format, option, options를 사용할 수 있다. 반면 DataFrameWriter와 달리 schema 함수로 DataFrame 스키마를 지정할 수 있다. 스파크는 데이터 소스의 스키마를 대부분 자동으로 감지하지만, 스키마를 직접 지정하면 그만큼 연산 속도를 높일 수 있다.
DataFrameWriter의 save 메서드와 유사하게 DataFrameReader의 load 메서드를 사용해 데이터 소스에서 데이터를 불러올 수 있다. DataFrameReader의 단축 메서드(json, orc, parquet)도 DataFrameWriter와 유사한 방식으로 구현했다. 다시 말해 각 단축 메서드는 먼저 내부적으로 format을 호출한 후 load 메서드를 호출한다.
또 table 함수를 사용해 하이브 메타스토어에 등록된 테이블에서 DataFrame을 불러올 수 있다. 예를 들어 앞 예제의 SELECT * FROM POSTS 명령을 실행하는 대신 다음 두 가지 방법으로 posts 테이블을 불러올 수 있다.
val postsDf = spark.read.table("posts") val postsDf = spark.table("posts")