본문 바로가기

Apache13

[3장] 아파치 스파크의 정형화 API [2] 자주 쓰이는 데이터 프레임 작업들 데이터 프레임에서 일반적인 데이터 작업을 수행하려면 구조화된 데이터를 갖고 있는 데이터 소스에서 데이터 프레임으로 로드를 해야하는데, 이를 위해 스파크는 DataFrameReader라는 이름의 인터페이스를 제공한다. 이 인터페이스는 JSON, CSV, Parquet, 텍스트, 에이브로, ORC 같은 다양한 포맷의 데이터 소스를 읽는것을 지원한다. 특정 포맷의 데이터소스에 데이터 프레임의 데이터를 써서 내보내기 위해서는 DataFrameWriter를 쓴다. # 파이썬에서 스키마를 정의한다. from pyspark.sql.types import * # 프로그래밍적인 방법으로 스키마를 정의한다. fire_schema = StructType([StructField('CallNu.. 2023. 7. 25.
[3장] 아파치 스파크의 정형화 API [1] 스파크 : RDD 아래에는 무엇이 있나? RDD는 스파크에서 가장 기본적인 추상적인 부분이다 RDD의 특성은 다음과 같다. 의존성(dependency) 어떤 입력을 필요로 하고 현재의 RDD가 어떻게 만들어지는지 스파크에게 가르쳐 주는 의존성이 필요한데, 결과를 새로 만들어야 하는 경우 스파크는 이 의존성 정보를 참고하고 연산을 다시 반복해서 RDD를 다시 만들 수 있고, 이 특성이 RDD에 유연성을 부여해준다. 파티션(지역성 정보 포함) 파티션은 스파크에게 작업을 나눠서 이그제큐터들에 분산해 파티션별로 병렬 연산할 수 있는 능력을 부여한다. 연산 함수 : Partition => Iterator[T] RDD는 RDD에 저장되는 데이터를 Iterator[T] 형태로 만들어 주는 연산 함수를 갖고 있다. 다.. 2023. 7. 20.
[2장] 아파치 스파크 시작 아파치 스파크 다운로드 pip isntall pyspark 를 통해서 pyspark를 설치해준 상태에서 로컬로 실시했다. 파이스파크 셸 사용 pyspark, spark-shell, spark-sql, sparkR의 네 가지 인터프리터들이 포함되어 있어 일회성 데이터 분석이 가능하며, 파이썬, 스칼라, R, SQL이나 bash 같은 유닉스 셸을 써봤으면 대화형 셸들이 익숙할 것이다. 이 셸들은 클러스터에 연결하고 분산 데이터를 스파크 워커 노드의 메모리에 로드할 수 있도록 확장 되어왔다. 로컬 머신에서 사용하기 ㅇ스파크 연산들은 작업으로 표현되는데, 작업들은 태스크라는 저수준 RDD 바이트 코드로 변환되며 실행을 위해 스파크의 이그제큐터들에 분산된다. 이후 빠져나가기 위해서 Ctrl-D를 누르면 된다. 스.. 2023. 7. 7.
[1장] 아파치 스파크 소개 아파치 스파크란!!?? 데이터 센터나 클라우드에서 대규모 분산 데이터 처리를 하기 위해 설계된 통합형 엔진! 스파크는 중간 연산을 위해 메모리 저장소를 지원하여 하둡 맵리듀스보다 훨씬 빠르게 동작할 수 있다. 스파크는 머신러닝(MLlib), 대화형 질의를 위한 SQL(스파크 SQL), 실시간 데이터 처리를 위한 스트리밍 처리(스파크 스트리밍), 그래프 처리(GraphX) 등을 위해 쉽게 사용 가능한 API들로 이루어진 라이브러리를 갖고 있다. 스파크의 네 가지 핵심 특성 - 속도 - 스파크는 질의 연산을 방향성 비순환 그래프(DAG)로 구성되며, 이 DAG의 스케줄러와 질의 최적화 모듈은 효율적인 연산 그래프를 만들어서 각각의 태스크로 분해하여 클러스터의 워커 노드 위에서 병렬 수행될 수 있도록 해 준다.. 2023. 6. 28.