2022. 4. 24. 13:35ใ๐ Data Engineering/Apache Spark
RDD(Resilient Distributed Dataset)๋?
์ง์ญํ๋ฉด ํ๋ ฅ์ ์ธ ๋ถ์ฐ ๋ฐ์ดํฐ์ ์ด๋ค.
๋ง ๊ทธ๋๋ก ๋ฐ์ดํฐ๋ฅผ ํด๋ฌ์คํฐ์ ๋ถ์ฐํ์ฌ ์ ์ฅํ๋ฉฐ,
๊ทธ๋ฐ ๋ฐ์ดํฐ๋ฅผ ํ๋ ฅ์ ์ผ๋ก ์ด์ฉ(์ด์ ๋ฐ์ ์ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ก ๋์๊ฐ๊ธฐ ๋ฑ)ํ ์ ์๊ฒ ํ๋ ๋ฐ์ดํฐ์ ์ด๋ค.
์ง๊ธ๋ถํฐ RDD์ ํน์ง์ ํบ์๋ณด์.
1. ๋ฐ์ดํฐ์ ๋ถ์ฐ
RDD๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ํด๋ฌ์คํฐ์ ๋ถ์ฐ ์ ์ฅํ๋ ๋ฐฉ์์ด๋ค.
ํ์ง๋ง ์ฌ๋ฌ ํด๋ฌ์คํฐ์ ํฉ์ด์ ธ์์ด๋ ํ๋์ ํ์ผ์ฒ๋ผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
# ํจํค์ง๋ฅผ ๊ฐ์ ธ์ค๊ณ
from pyspark import SparkConf, SparkContext
import pandas as pd
# Spark ์ค์
conf = SparkConf().setMaster("local").setAppName("uber-date-trips")
sc = SparkContext(conf=conf)
# ์ฐ๋ฆฌ๊ฐ ๊ฐ์ ธ์ฌ ๋ฐ์ดํฐ๊ฐ ์๋ ํ์ผ
directory = "C:/DE study/data-engineering/01-spark/data"
filename = "tripdata_03.csv"
# ๋ฐ์ดํฐ ํ์ฑ
lines = sc.textFile(f"file:///{directory}/{filename}")
lines = sc.textFile()์ ๋ณด์.
sc(SparkContext)์ผ๋ก RDD์์ ์ง์ ํ์ง๋ง, lines ๊ฐ์ฒด์ ๋ด์์ผ๋ก์จ ํ๋์ ํ์ผ์ฒ๋ผ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
2. Resilient & Immutable
๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ๊ตฐ๋ฐ์ ์ฐ์ฐ๋๋๋ฐ, ์ฌ๋ฌ ๋ ธ๋ ์ค ํ๋๊ฐ ๋ง๊ฐ์ง๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
RDD๋ ๋ฐ์ดํฐ๊ฐ Immutable ํ์ฌ ์ด์ ๋ฒ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋๋๋ฆด ์ ์๋ค.
RDD๋ ๋ณํ์ ํด๋ RDD 1์ด ๋ฐ๋๋ ๊ฒ์ด ์๋๋ผ RDD 2๊ฐ ์๋ก ๋ง๋ค์ด์ง๋ค. ๋ณํ์ ๊ฑฐ์น ๋๋ง๋ค ์ฐ์ฐ ๊ธฐ๋ก์ด ๋จ์ผ๋ฉฐ ์ด์ ๋ฐ๋ผ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ์ฝ๊ฒ ์ RDD๋ก ๋์๊ฐ ์ ์๋ค.
์ฆ, Node 1์ด ์ฐ์ฐ ๋์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ณต์์ํค๊ณ Node 2์์ ์ฐ์ฐํ๋ฉด ๋๋ค.
3. Type-safe
Integer RDD, String RDD, Double RDD ๋ฑ์ผ๋ก Type-safe ๋๋ค.
์ด์ ๋ฐ๋ผ ์ปดํ์ผ ์ Type๋ฅผ ํ๋ณํ์ฌ ๋ฌธ์ ๋ฅผ ์ผ์ฐ ๋ฐ๊ฒฌํ ์ ์๋ค.
4. Unstructured/ Structured Data
Unstructured Data: ํ ์คํธ, ๋ก๊ทธ, ์์ฐ์ด
Structured Data: ํ ์ด๋ธ, RDB, DataFrame
๊ตฌ์กฐ์ , ๋น๊ตฌ์กฐ์ ๋ฐ์ดํฐ ๋ชจ๋ ๋ด์ ์ ์๋ค.
5. Lazy Evaluation
Spark Operation = TransForm + Action
Spark๋ ์ก์ ์ ํ ๋๊น์ง ๋ณํ์ ์คํํ์ง ์๋๋ค. Action์ ํ๊ฒ ๋๋ฉด ๊ทธ๋์์ผ(Lazy) ๋ณํ์ ํ๋ค.
RDD์ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ?
1. ์ ์ฐํ๋ค
2. ์งง์ ์ฝ๋๋ก ๋ค์ํ ๊ธฐ๋ฅ
3. ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ๋ณํ๋ ๊ฒ์ธ๊ฐ? ์ ๋ํด ์๊ฐํ ์ ์๋ค.
'๐ Data Engineering > Apache Spark' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spark] Transformations & Actions ํจ์ (0) | 2022.05.01 |
---|---|
[Spark] Key-Value RDD ๊ฐ๋ ๋ฐ ์ฝ๋ (0) | 2022.05.01 |
[Spark] ๋ถ์ฐ/๋ณ๋ ฌ ์ฒ๋ฆฌํ ๋ ์ฃผ์ํ ์ (0) | 2022.05.01 |
[Spark] Apache Spark ๊ฐ๋ ๋ฐ ๋ฒ์ (0) | 2022.04.23 |
[Spark] ์ด๊ธฐ ํ๊ฒฝ ์ธํ ft. ํธํ ๋ฌธ์ ํด๊ฒฐ (0) | 2022.04.20 |