
아파치 스파크는 데이터 센터나 클라우드에서 대규모 분산 데이터 처리를 위한 통합형 엔진이다. 중간 연산을 메모리에 저장하고 머신러닝, SQL, 스트리밍 처리, 그래프 처리 등을 간편하게 API로 지원한다.

아파치 스파크 다운로드 페이지로 가서 최신 버전 4.0.0 및 Pre-built for Apache Hadoop 옵션을 선택하면 다운로드 링크가 나타난다. 해당 링크로 이동하면 Hadoop 관련 바이너리 파일이 포함된 압축 파일의 설치 경로를 확인할 수 있다.

Spark Application은 Driver Process 하나와 일련의 일련의 Executors로 구성된다. RDD는 탄력적인 분산 데이터셋이란 의미로, 분산 데이터를 병렬로 처리하고 장애가 발생할 경우 스스로 복구될 수 있는 내성을 가지고 있다.

pandas의 DataFrame에 영향을 받은 Spark DataFrame은 칼럼과 스키마를 가진 분산된 테이블처럼 동작하며, 각 칼럼은 정수, 문자열, 배열, 날짜 등 특정한 데이터 타입을 가질 수 있다.

SparkSession 객체에 sql() 함수를 사용하여 SQL 쿼리를 실행하고 결과로 DataFrame 객체를 반환받는다.

DataFrameReader는 데이터 소스에서 DataFrame으로 데이터를 읽는 방식이다. DataFrameWriter는 데이터 소스에 데이터를 저장하거나 쓰는 작업을 수행한다. Parquet, JSON, CSV, Avro와 같은 파일 형식을 읽을 수 있다.

스파크 SQL 쿼리를 실행하는 쉬운 방법은 spark-sql CLI이다. 스파크 SQL CLI는 Hive 메타스토어와 서비스와 통신하는 대신 Thrift JDBC 서버와 통신할 수 없다.