- Today
- Total
๋ชฉ๋กํ์ด์ฌ (51)
DATA101
๋ค์ด๊ฐ๋ฉฐ PySpark, ๋ฐ์ดํฐ ๋ถ์/์์ง๋์ด๋ง ํน์ ์ธ๊ณต์ง๋ฅ ๋ถ์ผ์ ๊ด์ฌ ์์ผ์ ๋ถ๋ค์ ํ ๋ฒ์ฏค ๋ค์ด๋ณด์ จ์ ๊ธฐ์ ์คํ์ด์ฃ . ์ด๋ฒ ํฌ์คํ ์์๋ PySaprk์ ๊ฐ๋ ๊ณผ ์ฃผ์ ๊ธฐ๋ฅ์ ์ดํดํ ์ ์๋๋ก ์ ๋ฆฌํ๊ณ ์ ํฉ๋๋ค. 1. PySpark ๊ฐ๋ PySpark๋ Python ํ๊ฒฝ์์ Apache Spark๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ธํฐํ์ด์ค์ ๋๋ค. ์ฆ, PySpark๋ Spark์ฉ API์ด๊ธฐ ๋๋ฌธ์ PySpark ๊ฐ๋ ์ ์ดํดํ๋ ค๋ฉด Spark์ ๋ํด ์ดํดํด์ผ ํฉ๋๋ค. Apache Spark ๊ฐ๋ Apache Spark๋ ๋์ฉ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์์ผ๋ก, ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋น ๋ฐ์ดํฐ ๋ถ์ฐ์ฒ๋ฆฌ ํ๋ซํผ(Distributed Computing Platform)์ ๋๋ค. Apache Spark๋ ๋ฐ์ดํฐ๋ฅผ ํ๋๋์คํฌ๊ฐ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์บ..
โ๏ธ ์๋ฌ ์ํฉ ์๋์ ๊ฐ์ด ๋ฐ์ดํฐํ๋ ์์์ 2๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๋๋ ์ฝ๋๋ ์ ๋์๊ฐ๋๋ฐ ์๋ฌ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋์์ต๋๋ค. 2018
๋ณ๊ฒฝ ์ ํ์ด์ฌ pandas ํจํค์ง๋ก ์์ ํ์ผ์ ๋ถ๋ฌ์ค๋ฉด ์๋์ ๊ฐ์ด ํ์ผ์๋ ์๋ ์นผ๋ผ์ด ์๋์ผ๋ก ์ถ๊ฐ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ผ๋จ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ ํ์ ํด๋น ์นผ๋ผ์ ์ญ์ ํ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง, ๋ฒ๊ฑฐ๋ก์ด ์์ ์ 2๋ฒ์ ํ ํ์๋ ์๊ฒ ์ฃ . ๊ทธ๋์ ์ด๋ฒ ํฌ์คํ ์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ๋๋ถํฐ ํด๋น ์นผ๋ผ์ด ์๋์ผ๋ก ์์ฑ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด ๋๋ค. ๋ณ๊ฒฝ ํ "Unnamed: 0" ์นผ๋ผ ์์ด ํ์ผ์ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค. read ๋ฉ์๋ ์คํ ์ index_col ์ต์ ๊ฐ์ 0์ผ๋ก ์ค์ ํ๋ ๊ฒ์ ๋๋ค. dataset = pd.read_csv("๋ฐ์ดํฐ์ ๊ฒฝ๋ก", index_col = 0) dataset.head() ์์ ๊ฐ์ด ์ต์ ์ ์ค์ ํ๋ฉด ์ด์ ํด๋น ์นผ๋ผ("Unnamed: 0") ์์ด ๋ฐ์ดํฐ๊ฐ..
๋ณ๊ฒฝ ๋ฐฉ๋ฒ ๋ณ๊ฒฝํ๊ณ ์ ํ๋ ์นผ๋ผ๋ค์ ์์๋๋ก ์๋์ ๊ฐ์ด ๋์ดํ์ฌ ์์ฑํด ์ฃผ๋ฉด ๋ฉ๋๋ค. ๋ฐ์ดํฐํ๋ ์ = ๋ฐ์ดํฐํ๋ ์[['์นผ๋ผ1', '์นผ๋ผ2', ...]] ๋ณ๊ฒฝ ์ ์๋ ์์ ๋ฐ์ดํฐ์ ์์๋ appName, review_raw, date_full, date_year ์นผ๋ผ ์์์ ๋๋ค. dataset.head() ๋ง์ฝ date_full, date_year ์นผ๋ผ์ review_raw ์์ผ๋ก ์ด๋ํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํ๋ฉด ๋ ๊น์? ๋ณ๊ฒฝ ํ date_full, date_year ์นผ๋ผ์ review_raw ์นผ๋ผ๋ณด๋ค ์์ ์ ๋ ฅํ์์ต๋๋ค. dataset = dataset[['appName', 'date_full', 'date_year', 'review_raw']] dataset.head() ์์ ๊ฐ์ด ์ ์์ ์ผ๋ก ์นผ๋ผ ์์๊ฐ..
๐ฅ ๋ชฉํ ์ค๋์ ํ์ด์ฌ map ํจ์์ lambda ํจ์๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํธ๋ค๋งํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด์ ์ ๋ํด ์์๋ด ๋๋ค. ๐จ๐ป ๋ฌธ์ ์ํฉ ์์ ๋ฐ์ดํฐํ๋ ์ ๋ด ํน์ ์นผ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ์ด๋ ํ ์ฐ์ฐ์ ๊ฑฐ์ณ ์๋ก์ด ๊ฐ๋ค๋ก ์ด๋ฃจ์ด์ง ์นผ๋ผ์ ์๋กญ๊ฒ ์์ฑํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ๊ตฌ์ฒด์ ์ธ ์์์ ํจ๊ป ์์๋ณด๊ฒ ์ต๋๋ค. ์๋์ ๊ฐ์ด dataset์ด๋ผ๋ ๋ฐ์ดํฐํ๋ ์์ yyyymmdd ํ์์ date ์ ๋ณด๊ฐ ๋ด๊ธด date_full ์นผ๋ผ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ง์ฝ, ์๋์ ๊ฐ์ด ์ฐ๋ ์ ๋ณด๋ง ์ถ์ถํ์ฌ date_year๋ผ๋ ์นผ๋ผ์ ์๋กญ๊ฒ ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ ๊น์? ๐ก ํด๊ฒฐ๋ฐฉ๋ฒ 1: ๋ฐ๋ณต๋ฌธ ํ์ฉ(Bad Case โ) ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ์ฌ date_full ์นผ๋ผ ๋ด ๋ฐ์ดํฐ๋ฅผ ํ ๊ฐ์ฉ ์ ๊ทผํ์ฌ ..
๋ณธ ํฌ์คํ ์์๋ venv๋ฅผ ํ์ฉํ์ฌ Python ๊ฐ์ํ๊ฒฝ ๋ด ํจํค์ง ์ค์น ๋ฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.๐ ๋ชฉ์ฐจ1. ๊ฐ์ํ๊ฒฝ ํ์์ฑ2. venv ํ์ฑํ3. ํจํค์ง ์ค์น4. ์ค์น๋ ํจํค์ง ๋ฆฌ์คํธ ์ ์ฅ5. ํจํค์ง ์ผ๊ด ์ค์น1. ๊ฐ์ํ๊ฒฝ ํ์์ฑ๊ฐ์ ํ๊ฒฝ์ ํ๋ก์ ํธ๋ง๋ค ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ(์ฆ, ๊ฐ์ ํ๊ฒฝ)์ ์์ฑํจ์ผ๋ก์จ ํ๋ก์ ํธ๋ณ๋ก ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํจ์ ๋๋ค.ํ์ด์ฌ์ ์ ๋ฌธํ๊ธฐ๋ก ๋ง์ ๋จน์ผ์ จ๋ค๋ฉด ์ง๊ธ๋ถํฐ๋ผ๋ ๊ฐ์ ํ๊ฒฝ ์ฌ์ฉ์ ๊ถ์ฅํด ๋๋ฆฝ๋๋ค.๊ฐ์ ํ๊ฒฝ์ ํ์์ฑ์ ๋ํ ์์ธํ ์ค๋ช ์ ์ด ํฌ์คํ ์ ์ฐธ๊ณ ํด ์ฃผ์ธ์.2. venv ํ์ฑํ๋จผ์ ์์ฑํด ๋์๋ venv๋ฅผ ํ์ฑํํด์ผ ํฉ๋๋ค.venv ๊ฐ์ํ๊ฒฝ ์์ฑ ๋ฐ ํ์ฑํ ๋ฐฉ๋ฒ์ ์ด๊ณณ์ ์ฐธ๊ณ ํด ์ฃผ์ธ์.์ฐธ๊ณ ๋ก, Python 3.5 ์ดํ๋ถํฐ๋ venv๊ฐ ํ์ด์ฌ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ..
๋ณธ ํฌ์คํ ์์๋ venv๋ฅผ ํ์ฉํ์ฌ Python ๊ฐ์ํ๊ฒฝ์ ์์ฑํ๋ ๋ฐฉ๋ฒ๋ถํฐ ํ์ฑํ/๋นํ์ฑํ, ์ญ์ ํ๋ ๋ฐฉ๋ฒ๊น์ง ์์๋ด ๋๋ค.๐ ๋ชฉ์ฐจ1. ๊ฐ์ํ๊ฒฝ ํ์์ฑ2. ๊ฐ์ํ๊ฒฝ ์์ฑ3. ๊ฐ์ํ๊ฒฝ ํ์ฑํ4. ๊ฐ์ํ๊ฒฝ ๋นํ์ฑํ5. ๊ฐ์ํ๊ฒฝ ์ญ์ 1. ๊ฐ์ํ๊ฒฝ ํ์์ฑ๊ฐ์ ํ๊ฒฝ์ ํ๋ก์ ํธ๋ง๋ค ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ(์ฆ, ๊ฐ์ ํ๊ฒฝ)์ ์์ฑํจ์ผ๋ก์จ ํ๋ก์ ํธ๋ณ๋ก ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํจ์ ๋๋ค.ํ์ด์ฌ์ ์ ๋ฌธํ๊ธฐ๋ก ๋ง์ ๋จน์ผ์ จ๋ค๋ฉด ์ง๊ธ๋ถํฐ๋ผ๋ ๊ฐ์ ํ๊ฒฝ ์ฌ์ฉ์ ๊ถ์ฅํด ๋๋ฆฝ๋๋ค.๊ฐ์ ํ๊ฒฝ์ ํ์์ฑ์ ๋ํ ์์ธํ ์ค๋ช ์ ์ด ํฌ์คํ ์ ์ฐธ๊ณ ํด ์ฃผ์ธ์.2. ๊ฐ์ํ๊ฒฝ ์์ฑ์ฐธ๊ณ ๋ก, Python 3.5 ์ดํ๋ถํฐ๋ venv๊ฐ ํ์ด์ฌ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ด์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์ค์นํ ํ์๊ฐ ์์ต๋๋ค.Terminal ํน์ cmd ์ฐฝ์ ์ฌ์ ์ ๊ฐ์ ..
๐ ๋ชฉ์ฐจ 1. ์ฐ์ ์์ ํ(Priority Queue)๋? 2. ํ(Heap) ์๋ฃ๊ตฌ์กฐ 2.1. ํ ์๋ฃ๊ตฌ์กฐ๋? 2.2. ์ฐ์ ์์ ํ ๊ตฌํ ๋ฐฉ์: ๋ฆฌ์คํธ vs ํ 3. ํ ๊ธฐ๋ฐ์ ์ฐ์ ์์ ํ ๊ตฌํ(Python) 3.1. heapq ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๊ฐ 3.1.1. ํ ์์ ์ถ๊ฐ(heappush) 3.1.2. ํ ์์ ์ญ์ (heappop) 3.1.3. ๋ฆฌ์คํธ๋ฅผ ํ์ผ๋ก ๋ณ๊ฒฝ(heapify) 3.2. ํ ๊ธฐ๋ฐ์ ์ฐ์ ์์ ํ ๊ตฌํ ์์ 1. ์ฐ์ ์์ ํ(Priority Queue)๋? ์ฐ์ ์์ ํ๋ ๋ง ๊ทธ๋๋ก ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ถ์ถํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ(Queue) ์๋ฃ๊ตฌ์กฐ๋ ์ ์ ์ ์ถ ๋ฐฉ์์ผ๋ก์ ๊ฐ์ฅ ๋จผ์ ์ฝ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ถ์ถํฉ๋๋ค. ๊ฐ๋จํ๊ฒ ํน์ง์ด ์ ์ฌํ ์๋ฃ๊ตฌ์กฐ๋ค์ ..
