본문 바로가기

Spark4

Apache Spark(아파치 스파크) - (4). 구조적 API - 집계 연산 함수 SQL에서 가장 유용하다고 생각하는 기능을 집계함수이다. 테이블 내에서 Grouping을 통해 통계값을 추출하고, 값을 모아 연산하는 과정이 다른 절차형 언어들에 비해 SQL이 가지는 특장점이라고 생각한다. Spark의 구조적 API도 SQL의 기본적인 기능을 제공하기 때문에, 마찬가지로 집계 연산 함수를 위한 API를 제공한다. Spark 집계 연산 함수란?집계함수는 키나 그룹을 지정하고, 하나 이상의 칼럼을 특정 연산으로 모아서, 그룹별로 결과 내는 데 사용하는 함수이다.기본적으로 Spark의 집계함수는 pyspark.sql.functions 내에 정의되어 있다.SQL의 문법과 거의 비슷하게 지원하지만, SQL의 모든 기능을 100% 지원하지는 않는다. (2023년 9월 기준) Spark의 group.. 2023. 9. 13.
Apache Spark(아파치 스파크) - (3). 구조적 API 개요 업무에서 Cluster 기반의 Database 엔진을 사용하고 있다. Database 서버 내에서 굉장히 많은 양의 PL/SQL Function을 사용 중인데, 이것을 Spark로 바꾸고 있다. 성격상 이론보다 개발부터 진행 중이지만, 이론도 꼭 필요하다고 생각하여 공부 중이다. Spark의 구조적 API란? 구조적 API는 주로 정형 데이터 (CSV, JSON, Table) 등의 데이터를 처리하기 위한 고수준의 API이다. 정형화가 가능한 데이터들은 일반적으로 Table 형태로 표현할 수 있는데, Spark는 이러한 Table 구조의 데이터들을 빠르게 연산할 수 있는 다양한 API 등을 지원해 준다. 매우 쉽게 생각하면, Database의 Query 혹은 Function 등의 기능을 제공해 주는 기능이.. 2023. 9. 5.
Apache Spark(아파치 스파크) - (2). Spark 구조 Overview Spark에 대해 집중적으로 공부하기 전에 Spark의 전체적인 구조와 개념들에 대해 알아보자. Spark 기본 아키텍처 이전 글에서 언급한대로, Spark는 클러스터 자원 내에서 분산 처리를 위한 프레임워크이다. (물론, 단일 머신 내에서도 사용 가능하다.) Spark는 클러스터 내의 데이터 처리를 총괄하는 클러스터 매니저에 Spark Application을 요청하고, 클러스터 매니저가 Spark Application에 대한 자원을 할당하는 방식으로 처리된다. Spark Application은 2종류의 Process로 구성된다. Driver Process : Cluster 내의 단 하나의 노드에서 실행됨. 대한 정보, 사용자 프로그램과 입력에 대한 응답, Excutor Process의 작업에 대한 분석.. 2023. 6. 29.
Apache Spark(아파치 스파크) - (1). 소개 데이터를 다루는 입장에서는 데이터 처리 속도를 신경 쓰지 않을 수 없다. 최근 운영 중인 시스템의 처리 속도를 개선하기 위해 다양한 방법을 고민하던 중, Spark에 대한 관심이 생겨서, 공부한 내용을 정리해 보기로 한다. Introduction Apache Spark란? Apache Spark는 빅데이터 처리를 위한 오픈소스 분산, 통합 컴퓨팅 시스템이다. [통합] Apache Spark 전에는 각기 다른 시스템으로 구성된 데이터의 흐름(SQL 처리, 데이터 스트리밍, 데이터 분석)을 개발자가 직접 조합하여 Application을 만들었다. Apache Spark 내에서는 다양한 데이터 흐름을 처리하는 시스템 및 API들을 일관성있는 API로 통합하여, 개발자들이 더 쉽고 효율적인 코드를 개발할 수 있.. 2023. 6. 11.