데브코스 TIL/빅데이터, 스트리밍 데이터 처리

Spark SQL 소개

예니ㅣ 2024. 1. 17. 16:30

강의

Spark SQL

"Spark SQL"은 구조화된 데이터 처리를 위한 Spark 모듈 입니다.

  • 데이터프레임에 테이블 이름을 지정하여 sql 함수 사용
  • HQL(Hive Query Language)와 호환 가능
  • 가독성 용이 및 다수의 사람이 사용 가능
  • 최적화 적절
  • 포팅 및 접근권한 체크 용이

 

사용 방법

  • 데이터프레임 기반 테이블 뷰 생성
    • createOrReplaceTempView : Spark Session이 존재하는 동안 존재
    • createOrReplaceGlobalTempView : Spark 드라이버가 존재하는 동안 존재
  • Spark Session의 sql 함수로 SQL 결과를 데이터프레임으로 저장

 


함수

Aggregation

  • Group by : SUM, MIN, MAX, AVG, COUNT
  • Window : ROW_NUMBER, FIRST_VALUE, LAST_VALUE
  • Rank

 

JOIN

  • 다수의 테이블을 공통 필드를 통해 Merge
  • 스타 스키마로 구성된 분산된 테이블의 정보를 통합
  • 문법적 관점 : INNER JOIN, FULL JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN, SELF JOIN
  • 최적화 관점
    • Shuffle JOIN : 일반 조인
    • Bucket JOIN : 조인 키를 바탕으로 새로운 파티션 생성 후 조인
    • Broadcast JOIN : 어느 한쪽의 데이터프레임이 충분히 작은 경우( spark.sql.autoBroadcastJoinThreshold ) 큰 데이터프레임에 broadcasting

 

UDF(User Defined Function)

  • .wifhColumn 이용

 

 

'데브코스 TIL > 빅데이터, 스트리밍 데이터 처리' 카테고리의 다른 글

Spark SQL 실습 3  (0) 2024.01.17
Spark SQL 실습 1  (0) 2024.01.17
Spark 프로그래밍 실습 5  (0) 2024.01.17
Spark 프로그래밍 실습 4  (0) 2024.01.17
Spark 프로그래밍 실습 3  (0) 2024.01.17