๐ Data Engineering(23)
-
[Spark] SparkSQL ๊ฐ๋ ๋ฐ ์ฝ๋
SparkSQL Structured Data๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด Spark์์๋ SQL๋ฌธ์ ์ธ ์ ์๊ฒ ํ๋ค. 1. Structured Data์ Unstructured Data์ ์ฐจ์ด์ ์ ๋ฌด์์ด๊ณ 2. ์ RDD๊ฐ ์๋ Structured Data๋ฅผ ์จ์ผ ํ๋ฉฐ 3. Spark์์ SQL๋ฌธ์ ์ด๋ป๊ฒ ์ธ ์ ์์๊น? ํฌ์คํ ์ ์ฝ์ด๊ฐ๋ฉฐ ์ง๋ฌธ์ ํด์ํด๋ณด์. "๋ณธ ํฌ์คํ ์ ํจ์คํธ์บ ํผ์ค์ ๊ฐ์๋ฅผ ๋ฃ๊ณ , ์ ๋ฆฌํ ์๋ฃ์์ ๋ฐํ๋๋ค." Structured Data vs Unstructured Data Unstructured Data : free form - ๋ก๊ทธ ํ์ผ - ์ด๋ฏธ์ง ๋ง ๊ทธ๋๋ก free form. ์์ ๋ก์ด ํ์์ ๋ฐ์ดํฐ๋ค. ์ด๋ฏธ์ง๊ฐ ๋ ์๋ ์๊ณ , ํ๋์ ์คํธ๋ง์ด ๋ ์ ์๋ค. ์ด๋ฐ ๋ฐ์ดํฐ๋ค์ ์ ์ ํ์ฌ Struc..
2022.05.06 -
[Spark] Reduction ๊ฐ๋ ๋ฐ ์ฝ๋
Reduction ์์๋ค์ ๋ชจ์์ ํ๋๋ก ํฉ์น๋ ์์ ์ ๋งํ๋ค. ๋ง์ Spark ์ฐ์ฐ๋ค์ด Reduction์ด๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค. * ํ์ผ ์ ์ฅ, collect() ๋ฑ๊ณผ ๊ฐ์ด Reduction์ด ์๋ ์ก์ ๋ ์กด์ฌ. ์ฝ๋๋ก ์ค์ตํด๋ณด์. conf ์ค์ import os import findspark findspark.init(os.environ.get('SPARK_HOME')) import pyspark from pyspark import SparkConf, SparkContext import pandas as pd import faulthandler faulthandler.enable() conf = SparkConf().setMaster('local').setAppName('my-RDD-transforma..
2022.05.01 -
[Spark] Spark ์๋ ์ต์ ํ, Cashe() & Persist()
Spark ์๋๋ฅผ ์ต์ ํ์ํค๋ ๋ฐฉ๋ฒ์ผ๋ก , Cashe(), Persist()๊ฐ ์๋ค. Spark ํน์ฑ์, Transformations๋ Lazy Execution ๋ฐฉ์์ผ๋ก ์์ ์ ์ํํ๋ค. ๊ทธ ์ด์ ๋, Eager Execution(์ฆ์ ์ํ)์ ๋ฐ๋ฅผ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๋นํจ์จ์ด ๋ฐ์ํ๋ค. Task๋ฅผ ์ํํ ๋๋ง๋ค Disk์ ์ ์ฅ์ ํ๊ณ , ๋ค์ ์ด๋ฅผ ๋ถ๋ฌ๋ค์ฌ์ผ ํ๋ค. ์ด ๊ณผ์ ์์ Disk ๊ณต๊ฐ์ ๋ฌผ๋ก , ํต์ ์ผ๋ก ์ธํ ์๋ ์ ํ ๋ฑ ๋นํจ์จ์ด ๋ฐ์ํ๊ฒ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด Lazy Execution ๋ฐฉ์์ผ๋ก ์์ ์ ์ํํ๋ค๋ฉด ์ด๋จ๊น? Lazy Execution ๋ฐฉ์์ด๋ผ๋ฉด, Disk์ ์ ์ฅํ์ง ์๋๋ค. ๋์ Task์์ Task๋ก ์ ๋ฌ๋ ๋ In-Memory ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค. In-Memory ๋ฐฉ์์ผ..
2022.05.01 -
[Spark] Transformations & Actions ํจ์
Spark Operation = Transformations + Actions Tranformations๋ ๊ฒฐ๊ด๊ฐ์ผ๋ก ์๋ก์ด RDD๋ฅผ ๋ฐํํ๊ณ , Lazy Execution์ ํ๋ค๋ ์ ์ด ํน์ง์ด๋ค. Actions๋ ๊ฒฐ๊ด๊ฐ์ ์ฐ์ฐํ์ฌ ์ถ๋ ฅํ๊ฑฐ๋ ์ ์ฅํ๋ฉฐ, Eager Execution์ ํ๋ค๋ ์ ์ด ํน์ง์ด๋ค. Transformations์ Actions ํจ์๋ค์ ๋ ์์ธํ ์ดํด๋ณด์. conf ์ค์ import os import findspark findspark.init(os.environ.get('SPARK_HOME')) import pyspark from pyspark import SparkConf, SparkContext import pandas as pd import faulthandler faulth..
2022.05.01 -
[Spark] Key-Value RDD ๊ฐ๋ ๋ฐ ์ฝ๋
Key-Value RDD (Key, Value) ์์ ๊ฐ์ง๋ RDD๋ก, Paris RDD๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค. Single Value RDD์ Key-Value RDD๋ ํ์ฉ ์์์ด ์กฐ๊ธ ๋ค๋ฅธ๋ฐ, ๋ค์๊ณผ ๊ฐ๋ค. Single Value RDD ์) ํน์ ๋จ์ด ์ ์ธ๊ธฐ Key-Value RDD ์) ํน์ ๋๋ผ๋ง๊ฐ ๋ฐ์ ๋ณ์ ์ ํ๊ท RDD๊ฐ ๋ฌด์์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด? https://mengu.tistory.com/27?category=932924 [Spark] RDD ๊ฐ๋ ๋ฐ ์ฝ๋ RDD(Resilient Distributed Dataset)๋? ์ง์ญํ๋ฉด ํ๋ ฅ์ ์ธ ๋ถ์ฐ ๋ฐ์ดํฐ์ ์ด๋ค. ๋ง ๊ทธ๋๋ก ๋ฐ์ดํฐ๋ฅผ ํด๋ฌ์คํฐ์ ๋ถ์ฐํ์ฌ ์ ์ฅํ๋ฉฐ, ๊ทธ๋ฐ ๋ฐ์ดํฐ๋ฅผ ํ๋ ฅ์ ์ผ๋ก ์ด์ฉ(์ด์ ๋ฐ์ ์ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ก ๋์๊ฐ๊ธฐ mengu.tis..
2022.05.01 -
[Spark] ๋ถ์ฐ/๋ณ๋ ฌ ์ฒ๋ฆฌํ ๋ ์ฃผ์ํ ์
์ ํฌ์คํ ์์ ์ธ๊ธํ๋ฏ์ด, Spark๋ ๋ถ์ฐ/๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ง์ํ๋ค. ํ์ง๋ง ๋ถ์ฐ/๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ๋๋ค๊ณ ๋ง๋ฅ ๋ฏฟ๊ณ ์ฐ๊ธฐ๋ง ํด์๋ ์๋๋ค. ๋ถ์ฐ/๋ณ๋ ฌ ์ฒ๋ฆฌ์ ์ฑ๋ฅ์ ์ฌ๋ฆฌ๊ณ , ๋น์ฉ์ ์ค์ด๊ธฐ ์ํด์ ์๊ฐํด์ค์ผ ํ ๊ฒ๋ค์ด ๋ช๋ช ์๋ค. ์ง๊ธ๋ถํฐ ๊ทธ ์์๋ค์ ์ดํด๋ณด๊ณ ์ด๋ป๊ฒ ์ฝ๋ฉํด์ผ ํ ์ง ๋ฐฉํฅ์ ์ง์ด๋ณด์. Distributed Data-Parallel ๋จผ์ Spark์ ํต์ฌ์ธ 'Distributed Data-Parallel'์ ๋ํด์ ์์๋ณด์. ๋ถ์ฐ๋ ํ๊ฒฝ์์์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋? 1) ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ๋ก ๋๋์ด ์ฌ๋ฌ ๋ ธ๋๋ก ๋ณด๋ธ๋ค. 2) ๊ฐ ๋ ธ๋์์ ๋ ๋ฆฝ์ ์ผ๋ก task๋ฅผ ์ํ. 3) ๊ฐ์ ๋ง๋ ๊ฒฐ๊ด๊ฐ์ ํฉ์น๋ค. ์ด ์ผ๋ จ์ ๊ณผ์ ์ด ๋ถ์ฐ๋ ํ๊ฒฝ์์์ ๋ณ๋ ฌ ์ฒ๋ฆฌ์ด๋ฉฐ, ๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. Spark๋ฅผ ์ฒ์ ์ ํ๋ค๋ฉด,..
2022.05.01