Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Yesterday

Total
05-08 01:43
관리 메뉴

Hey Tech

PySpark 개념 및 주요 기능(+Apache Spark) 본문

AI & 빅데이터/데이터 엔지니어링

PySpark 개념 및 주요 기능(+Apache Spark)

Tony Park 2022. 2. 13. 14:58
728x90
반응형

들어가며

PySpark, 데이터 분석/엔지니어링 혹은 인공지능 분야에 관심 있으신 분들은 한 번쯤 들어보셨을 기술 스택이죠. 이번 포스팅에서는 PySaprk의 개념과 주요 기능을 이해할 수 있도록 정리하고자 합니다.

1. PySpark 개념

PySparkPython 환경에서 Apache Spark를 사용할 수 있는 인터페이스입니다. 즉, PySpark는 Spark용 API이기 때문에 PySpark 개념을 이해하려면 Spark에 대해 이해해야 합니다.

PySpark란 Spark용 파이썬 API

Apache Spark 개념

Apache Spark대용량의 데이터를 고속으로, 효율적으로 처리하는 빅데이터 분산처리 플랫폼(Distributed Computing Platform)입니다. Apache Spark는 데이터를 하드디스크가 아닌 메모리에 캐시(cache)로 저장하는 인-메모리 컴퓨팅(In-Memory Computing) 상에서 처리합니다. 따라서 반복 처리가 필요한 작업에서는 분산처리 시스템 Hadoop과 비교했을 때, 연산 속도가 10~1,000배 빠르다는 장점이 있죠. 이러한 강점으로 대용량의 데이터를 실시간 처리를 지원하는 Apache Spark는 빅데이터 처리 프레임워크 시장에서 큰 각광을 받고 있습니다.

다시 정리하자면, PySpark파이썬 API를 활용한 빅데이터 분산처리 플랫폼입니다.

2. PySpark 기능 및 라이브러리

PySpark에서 지원하는 핵심 기능 및 라이브러리 몇 가지를 알아봅니다.

2.1. PySparkSQL

PySparkSQL대용량의 정형(sturctured) 데이터 처리를 위해 SQL 인터페이스를 지원하는 PySpark 라이브러리입니다. 따라서 PySparkSQL은 SQL 쿼리에도 사용 가능할 뿐만 아니라 Apache Hive(SQL 기반 데이터웨어하우스 관리 툴)와도 연결할 수 있기 때문에 HiveQL 역시 사용 가능합니다. PySparkSQL은 데이터프레임(DataFrame)을 데이터 표현 형식으로 도입했는데, 이는 관계형 데이터 베이스 관리 시스템(RDBMS)의 Table과 유사한 2차원(two dimensional) 구조입니다.

2.2. Pandas API on Spark

PySpark에서는 Pandas API를 지원합니다. 파이썬으로 데이터 분석 혹은 인공지능 프로젝트를 경험하셨다면 Pandas 패키지를 사용해 보셨을 겁니다. PySpark에서는 Pandas API를 지원하기 때문에 Pandas 사용이 이미 익숙하신 분이라면 데이터 핸들링을 위한 학습에 많은 시간을 할애할 필요가 없다는 장점이 있습니다.

2.3. MLlib

MLlibPySpark 기반 Wrapper로서 Spark의 머신러닝(Machine Learning, ML) 라이브러리입니다. MLlib는 데이터 병렬 처리 방법론을 활용하여 데이터를 처리하며 API 활용이 무척 간편합니다. 이 라이브러리는 수많은 머신러닝 알고리즘을 제공하기 때문에 Classfication, Regression, Clustering, Dimension Reduction, Optimization 등에 활용할 수 있습니다.

2.4. GraphFrame

GraphFrame데이터프레임 기반 그래프 분석을 지원하는 Spark 패키지입니다. Spark에서는 그래프 분석을 위해 RDDs(Resilient Distributed Datasets) 기반의 라이브러리 GraphX를 제공하고 있지만, 인터페이스의 사용성이 떨어진다는 단점이 있습니다. 이러한 한계를 보완하기 위해 다양한 프로그래밍 언어에서 사용할 수 있는 데이터프레임 API를 제공하는 GraphFrame 라이브러리가 등장하였습니다.

마치며

이번 포스팅에서는 PySpark의 개념과 주요 기능에 대해 알아봤습니다. 현업에서도 Spark가 빅데이터 분산처리 프레임워크로 활발하게 도입되고 있다는 점에서, 데이터 분석/엔지니어링 전문가로 성장하기 위해서는 반드시 익혀야 할 기술 스택이라고 생각합니다.


포스팅 내용에 오류가 있다면 아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다.
그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다 :)
고맙습니다.

728x90
반응형
Comments