5.4.3.2 sql 메서드로 등록한 데이터 소스에서 데이터 불러오기
임시 테이블을 등록하면 SQL 쿼리에서도 기존 데이터 소스를 참조할 수 있다. 예를 들어 다음 코드는 DataFrameReader의 jdbc 메서드와 (거의) 동일한 결과를 반환한다.
scala> sql("CREATE TEMPORARY TABLE postsjdbc "+ "USING org.apache.spark.sql.jdbc "+ "OPTIONS ("+ "url 'jdbc:postgresql://postgresrv/mydb',"+ "dbtable 'posts',"+ "user 'user',"+ "password 'password')") scala> val result = sql("select * from postsjdbc")
하지만 이 방법으로는 조건절(viewCount > 3)을 지정할 수 없기 때문에 완전히 동일한 결과를 얻을 수 없다. 기본 데이터 소스에서도 이와 마찬가지로 기존 Parquet 파일을 임시 테이블로 등록하고 파일 내용을 불러올 수 있다.
scala> sql("CREATE TEMPORARY TABLE postsParquet "+ "USING org.apache.spark.sql.parquet "+ "OPTIONS (path '/path/to/parquet_file')") scala> val resParq = sql("select * from postsParquet")