

๐ DataFrame ์ด๋?
ํ ์ค ์ ์
๐ ํ(row)๊ณผ ์ด(column)๋ก ์ด๋ฃจ์ด์ง “ํ ํํ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ”
(์์ ·SQL ํ ์ด๋ธ ๊ฐ์ ๊ฐ๋ )
์ง๊ด์ ์ธ ๋น์
DataFrame = ์์ ํ๋ฅผ์์ฒ ๋ ์ปดํจํฐ์ ๋๋ ์ ๋์์ ๊ณ์ฐํ๋ ๊ตฌ์กฐ
DataFrame์ ํต์ฌ ํน์ง
1๏ธโฃ ์คํค๋ง๊ฐ ์๋ค
- ์ปฌ๋ผ ์ด๋ฆ + ํ์ ๋ณด์
- Spark๊ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ดํดํจ
user_id : long
event_time : timestamp
price : double
๐ ์ด๊ฒ RDD์ ๊ฐ์ฅ ํฐ ์ฐจ์ด
2๏ธโฃ SQL์ฒ๋ผ ๋ค๋ฃฌ๋ค
df.filter(df.price > 100).groupBy("user_id").count()
๋๋
SELECT user_id, COUNT(*)
FROM df
GROUP BY user_id
๐ ๋ถ์๊ฐ·์์ง๋์ด ๋ชจ๋ ์น์
3๏ธโฃ ์๋ ์ต์ ํ ๋๋ค
Spark๊ฐ ๋ด๋ถ์์:
- ๋ถํ์ํ ์ปฌ๋ผ ์ ์ฝ์
- ์กฐ๊ฑด ๋จผ์ ์ ์ฉ
- ์คํ ๊ณํ ์ฌ์์ฑ
๐ ์ฌ๋์ด ์ต์ ํ ์ ํด๋ ๋น ๋ฆ
4๏ธโฃ ๋ถ์ฐ ์ฒ๋ฆฌ ๊ธฐ๋ณธ ๋ด์ฅ
- ๋ฐ์ดํฐ ์๋ ๋ถํ (partition)
- ์ฌ๋ฌ executor๊ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ
- ์ฅ์ ๋๋ ์๋ ๋ณต๊ตฌ
๐ ๋์ฉ๋์ ๊ฐํจ
DataFrame vs RDD (ํ ๋ ๋น๊ต)
๊ตฌ๋ถ DataFrame RDD
| ๊ตฌ์กฐ | ํ (ํ/์ด) | ๋ฆฌ์คํธ |
| ์คํค๋ง | ์์ | ์์ |
| ์ต์ ํ | ์๋ | ์์ |
| ๋์ด๋ | ์ฌ์ | ์ด๋ ค์ |
| ์ค๋ฌด | ํ์ค | ๊ฑฐ์ ์ ์ |
๐ ์ค๋ฌด์์๋ DataFrame์ด ๊ธฐ๋ณธ
Spark์์ DataFrame์ด ์ค์ํ ์ด์
- Spark SQL ์์ง๊ณผ ๋ฐ๋ก ์ฐ๊ฒฐ
- BI / dbt / DW์ ๊ถํฉ ์ข์
- ์ฝ๋ ์งง๊ณ ๊ฐ๋ ์ฑ ์ข์
- ์ฑ๋ฅ ์ต์ ํ ์๋
๐ ๊ทธ๋์ Spark = DataFrame ์ค์ฌ ์์ง์ด๋ผ๊ณ ๋ด๋ ๋จ
์ธ์ DataFrame ์ฐ๋ฉด ์ ๋ ๊น?
๊ฑฐ์ ์์ ๐
์์ฃผ ํน์ํ ๊ฒฝ์ฐ๋ง:
- ์ปฌ๋ผ ๊ตฌ์กฐ ์๋ ๋น์ ํ ๋ฐ์ดํฐ
- ๋ณต์กํ ๊ฐ์ฒด ๋จ์ ์ฐ์ฐ
๋ฉด์ ์ฉ 15์ด ๋ต๋ณ
“DataFrame์ ํ๊ณผ ์ด๋ก ๊ตฌ์ฑ๋ ๋ถ์ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก,
์คํค๋ง๋ฅผ ๊ฐ์ง๊ณ ์์ด Spark๊ฐ ์๋์ผ๋ก ์ต์ ํํ ์ ์์ต๋๋ค.
ํ์ฌ Spark ์ค๋ฌด์์๋ RDD๋ณด๋ค DataFrame API๊ฐ ํ์ค์ ๋๋ค.”
๋ง์ง๋ง ํต์ฌ ๋ฌธ์ฅ
๐ DataFrame์ ‘์ฌ๋์ด ๋ณด๊ธฐ ์ฌ์ด ํ’์ด๋ฉด์‘Spark๊ฐ ์ต์ ํํ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ’๋ค.
'DataEngineering > Spark' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Spark ์ต์ ํ ์ฒดํฌ๋ฆฌ์คํธ (0) | 2026.01.30 |
|---|---|
| Suffle์ด๋? (1) | 2026.01.30 |
| df.cache() ๋ฅผ ์ธ์ ์จ์ผํ๋? (0) | 2026.01.30 |
| Lazy Evaluation ์ด๋? (0) | 2026.01.30 |
| Spark ๋? (0) | 2026.01.30 |