본문 바로가기
Hadoop

RDD와 비정형데이터(feat. Spark)

by 집못가는프로그래머 2021. 9. 15.

데이터프레임은 가공이된, 검색/변경등이 편리한 '고수준' 데이터를 다룬다.

비정형 데이터와 같이 '저수준' 데이터 다룰때는 데이터를 우선 가공해야 관리하기 편하다.

 

*빅데이터의 종류

정형데이터 : RDD(Resilient Distributed Dataset), Excel, etc.

비정형데이터 : Text, Image, Video, etc.

반정형데이터 : XML, JSON, CSV, etc.


*RDD란 스파크의 가장 초기부터 도입된 가장 기초적인 데이터 구조이다.

- Resilient(회복력 있는, 불변한) Distributed(분산된) Dataset(데이터셋)

- RDD는 기본적으로 불변의 특성을 가지기 때문에 처리과정을 하기 위해서는 기본 RDD에서 새로운 RDD를 만들 수 밖에 없다.

- 여러 과정을 거칠수록 더 많은 RDD가 생성되고 각각의 RDD는 서로 의존성을 가지고 하나의 RDD가 변형/손실 되면 그 전의 RDD로 돌아가 다시 데이터를 복구할 수 있다. 즉 Resilient(회복력 있는, 불변한)이라는 단어가 어울린다.

- RDD를 가공/변화 하는 과정을 Transformation이라고 한다.

- 변화/가공한 데이터를 분산데이터에 반영하는 것을 Action이라고 한다.

 

*RDD(분산데이터)에는 크게 2가지 기능이 있다

1. Transformation 함수

 - RDD의 변환/가공을 의미한다.

 - return값이 또다른 RDD가 나온다.

 - RDD를 return하는 이유는 기존의 RDD와 가공한 RDD의 내용이 다르기 때문

 - 그렇다고 가공된 RDD가 분산데이터에 바로 반영이 되는것이 아니다.

 - 예) map(), reduce(), filter(), etc.

2. Action 함수

 - RDD의 계산을 의미한다.

 - RDD를 Action을 하면 값을 return한다.

 - Lazy Update라고도 한다.


예)

- lines는 hdfs영역의 employee.txt파일을 읽어온 것이다. 이때 lines의 type을 보면 RDD임을 알 수 있다. (DataFrame 아님)

- parts는 lines(RDD)를 map()함수(Transformation)를 통해 가공하고 return된 값을 받은 것이다. parts의 type또한 RDD임을 알 수 있다.

 

 

 

 

'Hadoop' 카테고리의 다른 글

RDD -> DataFrame(feat. Spark)  (0) 2021.09.16
RDD 가공/처리 함수  (0) 2021.09.16
subprocess 모듈 (feat. python)  (0) 2021.09.15
Arrow 모듈과 DataFrame(feat. Pandas, Spark)  (0) 2021.09.15
Pyspark 사용 예시(3)  (0) 2021.09.15

댓글