본문 바로가기
BOOK/러닝 스파크(Learning Spark)

CHAPTER 4 스파크 SQL과 데이터 프레임: 내장 데이터 소스 소개

by 메이슨김 2023. 9. 27.

* 개요

데이터 프레임과 스파크 SQL이 어떻게 상호 작용하는지 알아보자.

 

* 스파크 SQL 특징

3장에서 살펴본 상위 수준의 정형화 API가 엔진으로 제공된다.

다양한 정형 데이터를 읽거나 쓸 수 있다 (예: JSON, 하이브 테이블, Parquet, Avro, ORC, CSV)

태블로, 파워BI, 탈렌드 와 같은 외부 비지니스 인텔리전스의 데이터 소스나 MySQL 및 PostgreSQL 과 같은 RDBMS의 데이터를 JDBC/ODBC 커넥터를 사용하여 쿼리할 수 있다.

스파크 애플리케이션에서 데이터베이스 안에 테이블 또는 뷰로 저장되어 있는 정형 데이터와 소통할 수 있도록 프로그래밍 인터페이스를 제공한다.

SQL 쿼리를 정형 데이터에 대해 실행할 수 있는 대화형 쉘을 제공한다.

ANSI SQL: 2003 호환 명령 및 HiveQL을 지원한다.

 

스파크 애플리케이션에서 스파크 SQL 사용하기

SparkSession 은 정형화 API 로 스파크를 프로그래밍하기 위한 통합된 진입점 (unified entry point) 를 제공한다.

SQL 쿼리를 실행하기 위해선 spark라고 선언된 SparkSession 인스턴스에서 spark.sql("SELECT * FROM myTableName") 과 같은 sql() 함수를 사용한다. 실행된 모든 쿼리는 데이터 프레임을 반환한다.

In : spark
Out: <pyspark.sql.session.SparkSession at 0x107c234f0>

In [4]: userdata = spark.read.parquet("/study/LearningSpark/sampledata/userdata.parquet")
In [5]: userdata
Out[5]: DataFrame[registration_dttm: timestamp, id: int, first_name: string, last_name: string, email: string, gender: string, ip_address: s
tring, cc: string, country: string, birthdate: string, salary: double, title: string, comments: string]
반응형