[Spark] Spark SQL _TIL

Spark SQL이란?

- Spark SQL은 구조화된 데이터 처리를 위한 Spark 모듈

- 데이터 프레임 작업을 SQL로 처리 가능

  • 데이터프레임에 테이블 이름 지정 후 sql함수 사용가능
    • 판다스에도 pandassql 모듈의 sqldf함수를 이용하는 동일한 패턴 존재
  • HQL(Hive Query Language)과 호환 제공
    • Hive테이블들 읽고 쓸 수 있음 (Hive Metastore)

 

Spark SQL vs DataFrame

- SQL로 가능한 작업이라면 DataFrame을 사용할 이유가 없음

  • 두 개를 동시에 사용할 수 있다는 점이 중요 (ex. SQL로 질의하고 데이터 프레임 기반으로 테이블 뷰 생성)

- Spark SQL 사용 시 이점 

  1. Familiarity / Readability
    • SQL이 가독성이 더 좋고 더 많은 사람들이 사용가능
  2. Optimization
    • Spark SQL엔진이 최적화하기 더 좋음 (SQL은 Declarative)
      • Catalyst Optimizer와 Project Tungsten
  3. Interoperability / Data Management
    1. SQL이 포팅도 쉽고 접근권한 체크도 쉬움