๐ Data Engineering/Apache Spark(17)
-
[SparkSQL] UDF ๊ฐ๋ ๋ฐ ์ฝ๋
UDF User Define Function. ์ฆ, ์ฌ์ฉ์ ์ง์ ํจ์๋ฅผ ๋งํ๋ค. ์์ ํฌ์คํ ์์ ๋ฐ์ดํฐ ํ๋ ์์ ์ฒ๋ฆฌํ๋ ์ฌ๋ฌ ํจ์๋ค์ ๋ณด์๋ค. SparkSQL์์ ์ฌ์ฉ์๊ฐ ์ง์ ์ด๋ค ์์ ์ ์ํํ๋ ํจ์๋ฅผ ๋ช ๋ช ํ๊ณ , Spark์ ๋ฑ๋กํ์ฌ ์ธ ์ ์๋ค. ์์ธํ๊ฒ ์์๋ณด์. "๋ณธ ํฌ์คํ ์ ํจ์คํธ์บ ํผ์ค์ ๊ฐ์๋ฅผ ๋ฃ๊ณ , ์ ๋ฆฌํ ์๋ฃ์์ ๋ฐํ๋๋ค." Basic Setting 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(..
2022.05.08 -
[SparkSQL] DataFrame ๋ค๋ฃจ๊ธฐ
DataFrame SparkSQL์์ ๋ค๋ฃจ๋ Structured Data๋ก ์์ฃผ ์ฃผ์ ๊ฐ๋ ์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Lazy Execution, ๋ถ์ฐ, Immutable์ด๋ RDD์ ์ฅ์ ์ ๊ฐ์ง๊ณผ ๋์์ ๊ตฌ์กฐํ(Structured)๋์ด ์์ด ์๋ ์ต์ ํ๊น์ง ๊ฐ๋ฅํ๋ค. CSV, JSON, Hive ๋ฑ์ผ๋ก ์ฝ๊ฑฐ๋ ๋ณํ๋ ๊ฐ๋ฅํ๋ค. ๋ณธ๊ฒฉ์ ์ผ๋ก DataFrame์ ๋ค๋ค๋ณด์. "๋ณธ ํฌ์คํ ์ ํจ์คํธ์บ ํผ์ค์ ๊ฐ์๋ฅผ ๋ฃ๊ณ , ์ ๋ฆฌํ ์๋ฃ์์ ๋ฐํ๋๋ค." Basic Setting import os import findspark findspark.init(os.environ.get("SPARK_HOME")) import pyspark from pyspark import SparkConf, SparkContext import pand..
2022.05.07 -
[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