Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- dbt_project
- 크롤링
- 파이썬
- polars
- numpartitions
- 윈도우
- query history
- docker
- Materializations
- ksql
- KubernetesPodOperator
- Python
- k9s
- proerty
- UI for kafka
- 쿠버네티스
- freshness
- 카프카
- Java
- CDC
- DBT
- 모바일
- airflow
- mysql
- spark
- bar cahrt
- 도커
- 동적 차트
- spring boot
- kafka
Archives
- Today
- Total
데이터 엔지니어 이것저것
RDD 본문
728x90
RDD란 (Resillient Distributed Data)?
복원력(회복력) 있는 분산 데이터를 의미한다. (스파크의 데이터 세트와 다르다.)
(Spark에 가장 처음 도입된 데이터 구조)
기본적으로 RDD는 일련의 데이터이다.
그리고 행으로 나누어져있기에, 다른 컴퓨터에 분배될 수 있으며, 병렬로 처리된다.
즉. 여러 분산 노드에 걸쳐 저장되는 변경 불가능한 데이터 집합이다.
스파크가 작동중 노드가 고장나면, 새로운 노드를 회전시켜 그 자리를 대신한다.
이를 위해 SparkContext를 작성해야한다.
SparkContext는 RDD의 복원력과 분산 기능을 제공한다.
노드 장애 또는 하드웨어 장애를 처리하기위해 코드를 작성할 필요없고, 전체 클러스터에 데이터를 배포하는 방법을 파악하기 위해 코드를 작성할 필요도 없다.
spark context 내의 RDD 자체가 이를 위한 방법을 찾는다.
우리는 데이터를 어떻게 변환할까 하는것을 신경써야한다.
어떻게 RDD를 만드는것인가
명확한 목록을 준다
이는 실제에서는 유용하지 않다. 왜냐하면 모든 데이터 목록을 하드코딩 할 수 없고, 실제 데이터는 크기 때문이다.
하지만 테스트를 위한 용도로는 유용하다.
주로 파일, DB등을 이용해 데이터 목록을 전달한다.
RDD Operation
RDD는 2가지의 Operation을 지원한다.
- Transformation
- 기존의 RDD를 변경하여 새로운 RDD를 생성한다
- 리턴값이 RDD 이다
- map, filter 등 이 대표적이 예시이다
- Action
- RDD 값을 기반으로 무엇가를 계산하여 결과를 생성한다
- 리턴값이 DATA 또는 실행 결과이다.
- collection, count 등이 예시이다.
728x90
'오픈소스 > Spark' 카테고리의 다른 글
Spark Broadcast (0) | 2023.01.30 |
---|---|
Spark Session (0) | 2023.01.08 |
Spark SQL (0) | 2023.01.08 |
spark groupByKey vs reduceByKey (0) | 2022.12.05 |
Spark란? (1) | 2022.11.23 |