์์ฑ์: ๋น๋ ์ค๋ฒ ์ด๋คํธ, Bryan Smith, ๋ธ๋ ๋ ํ์ธ์ธ , Kelly O'Malley
Translated by HaUn Kim - Original Blog Post
์๊ณ์ด ์์ธก์ ๋ฐ์ ๋๋ถ์ ๋ฆฌํ ์ผ๋ฌ๋ค์ ๋์ฑ ์ ๋ขฐํ ์ ์๋ ์์ ์์ธก์ ๋ง๋ค์ด๋ผ ์ ์๊ฒ ๋์์ต๋๋ค. ์ด์ ๋จ์ ๊ณผ์ ๋ ์ด๋ฌํ ์์ธก์ ์ ์์, ๊ทธ๋ฆฌ๊ณ ๊ธฐ์ ์ด ์ ํ ์ฌ๊ณ ๋ฅผ ์ ๋ฐํ๊ฒ ์กฐ์ ํ ์ ์์ ๋งํผ ์ธ๋ฐํ๊ฒ ๋ถ๋ฅํ์ฌ ์ ์ํ๋ ๊ฒ์ ๋๋ค. ์ด ๊ณผ์ ์ ์ง๋ฉดํ ์ ์ ๋ ๋ง์ ๊ธฐ์ ๋ค์ด Apache Sparkโข์ Facebook Prophet์ ํ์ฉํจ์ผ๋ก์จ ๊ณผ๊ฑฐ์ ์๋ฃจ์ ์ด ๊ฐ์ง ํ์ฅ์ฑ๊ณผ ์ ํ๋์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ ์ ์๋ค๋ ๊ฒ์ ์์์ฐจ๋ฆฌ๊ณ ์์ต๋๋ค.
์ด ๊ฒ์๋ฌผ์์ ์ธ๊ธ๋ ์์ธก ์ก์ ๋ฌ๋ ์ดํฐ์ ๋ฐ๋ก ์ ๊ทผํ์ค ์ ์์ต๋๋ค. Spark 2.0์ ๋ํ ์ด ์๋ฃจ์ ์ ํ์ธํ๊ณ ์ถ์ผ์๋ค๋ฉด, ์ฌ๊ธฐ์์ ์๋ณธ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฝ์ด๋ณด์ธ์.
์ด ํฌ์คํธ์์๋ ์๊ณ์ด ์์ธก์ ์ค์์ฑ์ ๋ ผ์ํ๊ณ , ๋ช ๊ฐ์ง ์์ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ ํ, ๊ฐ๋จํ ๋ชจ๋ธ์ ๊ตฌ์ถํ์ฌ Facebook Prophet์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ค๋ช ํด ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋จ์ผ ๋ชจ๋ธ ๊ตฌ์ถ์ ์ต์ํด์ง๋ฉด, Facebook Prophet๊ณผ Spark์ ๊ฒฐํฉ์ ํตํด ํ ๋ฒ์ ์๋ฐฑ ๊ฐ์ ๋ชจ๋ธ์ ํ๋ จ์ํค๊ณ , ์ด์ ์๋ ๊ฑฐ์ ๋ฌ์ฑํ ์ ์์๋ ์ธ๋ฐํ ์์ค์์ ๊ฐ๊ฐ์ ์ ํ-๋งค์ฅ ์กฐํฉ์ ๋ํ ์ ํํ ์์ธก์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ ํ ๋ฐ ์๋น์ค์ ์์๋ฅผ ๋ ์ ํํ ์์ธกํ๊ธฐ ์ํด์๋ ์๊ณ์ด ๋ถ์์ ์๋์ ์ ํ๋๋ฅผ ํฅ์์ํค๋ ๊ฒ์ด ๋ฆฌํ ์ผ๋ฌ์ ์ฑ๊ณต์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋งค์ฅ์ ์ ํ์ ๊ณผ๋คํ๊ฒ ์ง์ดํ๋ฉด ์ง์ด๋์ ์ฐฝ๊ณ ๊ณต๊ฐ์ด ๋ถ์กฑํด์ง๊ณ , ์ ํต๊ธฐํ์ด ์ง๋ ์ ํ์ด ํ๋งค๋ ์ํ์ด ์์ผ๋ฉฐ, ๋ํ ์๋งค์ ์ฒด์ ์ฌ์ ์์์ด ์ฌ๊ณ ์ ๋ฌถ์ฌ ์ ์กฐ์ ์ฒด๊ฐ ์ ๊ณตํ๋ ์๋ก์ด ๊ธฐํ๋ ์๋น์ ํธ๋ ๋์ ๋ณํ๋ฅผ ํ์ฉํ์ง ๋ชปํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด, ๋งค์ฅ์ ์ ํ์ ๋๋ฌด ์ ๊ฒ ๋ฐฐ์นํ๋ฉด ๊ณ ๊ฐ์ด ํ์ํ ์ ํ์ ๊ตฌ๋งคํ์ง ๋ชปํ๋ ์ํฉ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์์ธก์ ์ค๋ฅ๋ ๋ฆฌํ ์ผ๋ฌ์๊ฒ ์ฆ๊ฐ์ ์ธ ๋งค์ถ ์์ค์ ์ผ์ผํฌ ๋ฟ๋ง ์๋๋ผ, ์๊ฐ์ด ์ง๋๋ฉด์ ์๋น์์ ๋ถ๋ง์ด ์ฆ๊ฐํ์ฌ ๊ฒฝ์์ ์ฒด๋ก์ ๊ณ ๊ฐ ์ดํ์ ์ด๋ํ ์๋ ์์ต๋๋ค.
์ค๋ซ๋์ ERP(Enterprise Resource Planning, ์ ์ฌ์ ์์ ๊ด๋ฆฌ) ์์คํ ๊ณผ ํ์ฌ ์๋ฃจ์ ์ ๊ธฐ๋ณธ์ ์ธ ์๊ณ์ด ๋ชจ๋ธ์ ๊ธฐ๋ฐํ ์์ ์์ธก ๊ธฐ๋ฅ์ ์๋งค์ ์ฒด์ ์ ๊ณตํด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ์ ์ ๋ฐ์ ๊ณผ ์ ๊ณ์ ์๋ฐ์ด ์ปค์ง์ ๋ฐ๋ผ ๋ง์ ๋ฆฌํ ์ผ๋ฌ๋ค์ด ๊ธฐ์กด์ ์ฌ์ฉํ๋ ์ ํ ๋ชจ๋ธ๊ณผ ์ ํต์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ๋์ด์๋ ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ ์ฐพ๊ณ ์์ต๋๋ค.
๋ฐ์ดํฐ ์ฌ์ด์ธ์ค ์ปค๋ฎค๋ํฐ์์๋ Facebook์ Prophet๊ณผ ๊ฐ์ด ์๋ก์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ด ๋ฑ์ฅํ๊ณ ์์ผ๋ฉฐ, ๊ธฐ์ ๋ค์ ์ด๋ฌํ ๋ชจ๋ธ์ ์๊ณ์ด ์์ธก์ ์ ์ฐํ๊ฒ ์ ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ํ์ํ๊ณ ์์ต๋๋ค.

์ ํต์ ์ธ ์์ธก ์๋ฃจ์ ์ ๋์ด์๊ธฐ ์ํด์๋ ์๋งค์ ์ฒด๋ค์ด ์์ ์์ธก์ ๋ณต์ก์ฑ์ ์ดํดํ๊ณ ์์ญ๋ง ๋๋ ์๋ฐฑ๋ง ๊ฐ์ ML ๋ชจ๋ธ์ ์ ์์ ์์ฑํ๋ ๋ฐ ํ์ํ ์์ ์ ํจ์จ์ ์ผ๋ก ๋ถ๋ฐฐํ ์ ์๋ ๋ด๋ถ ์ ๋ฌธ ์ง์์ ๊ฐ๋ฐํด์ผ ํฉ๋๋ค. ๋คํํ๋ Spark๋ฅผ ํ์ฉํ๋ฉด ์ด๋ฌํ ๋ชจ๋ธ์ ํ์ต์ ๋ถ์ฐ ์ฒ๋ฆฌํ ์ ์์ด, ์ ํ ๋ฐ ์๋น์ค์ ์์๋ฟ๋ง ์๋๋ผ ๊ฐ ์ง์ญ๋ณ ๊ฐ ์ ํ์ ๋ํ ๋ ํนํ ์์๋ ์์ธกํ ์ ์์ต๋๋ค.
๊ฐ๋ณ ๋งค์ฅ ๋ฐ ์ ํ์ ๋ํ ์ธ๋ถํ๋ ์์ ์์ธก์ ์์ฑํ๋ ๋ฐ Facebook Prophet์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆฌ๊ธฐ ์ํด Kaggle์์ ๊ณต๊ฐ์ ์ผ๋ก ์ ๊ณต๋๋ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ํ์ฉํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ฐ์ดํฐ๋ 10๊ฐ ๋งค์ฅ์ 50๊ฐ ๊ฐ๋ณ ํ๋ชฉ์ ๋ํ 5๋ ๊ฐ์ ์ผ์ผ ํ๋งค ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.

๋ค์์ผ๋ก, ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์๋ณ๋ก ์ดํด๋ณด๋ฉด ์ ๋ ๋๋น ์์น ์ถ์ธ๊ฐ ๋งค์ ๊พธ์คํ ์งํ๋์ง ์๋๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋์ ์ฌ๋ฆ์ฒ ์ ์ ์ ์ ์ฐ๊ณ ๊ฒจ์ธ์ฒ ์ ์ต์ ์ ์ ์ฐ๋ ๋๋ ทํ ๊ณ์ ์ ํจํด์ด ์์ต๋๋ค. ๋ฐ์ดํฐ๋ธ๋ฆญ์ค ํ์ ๋ ธํธ๋ถ์ ๋ด์ฅ๋ ๋ฐ์ดํฐ ์๊ฐํ ๊ธฐ๋ฅ์ ์ฌ์ฉํด ์ฐจํธ๋ฅผ ๋ง์ฐ์ค๋ก ๊ฐ๋ฆฌํค๋ฉด ์๋ณ ๋ฐ์ดํฐ์ ๊ฐ์น๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
ย
ํ์ผ์ ๊ธฐ์ค์ผ๋ก ํ ๋, ์ผ์์ผ(์ฃผ์ค 0)์ ๋งค์ถ์ด ์ ์ ์ ์ฐ๊ณ ์์์ผ(์ฃผ์ค 1)์ ๊ธ๊ฒฉํ๊ฒ ํ๋ฝํ ํ, ๋๋จธ์ง ์ฃผ ๋์ ๊พธ์คํ ํ๋ณตํ๋ ๊ฒฝํฅ์ ๋ณด์ ๋๋ค.

์์์ ๋ณผ ์ ์๋ฏ์ด, ๋ฐ์ดํฐ๋ ์ฐ๊ฐ ๋ฐ ์ฃผ๊ฐ์ ๊ณ์ ๋ณ ํจํด๊ณผ ํจ๊ป ๋งค์ถ์ ๋๋ ทํ ์ ๋ ๋๋น ์์น ์ถ์ธ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ์ ์ค์ฒฉ๋ ํจํด์ ๋ฐ๋ก Facebook Prophet์ด ํด๊ฒฐํ๊ธฐ ์ํด ์ค๊ณ๋ ๋ฌธ์ ์ ๋๋ค.
Facebook Prophet์ scikit-learn API๋ฅผ ๋ฐ๋ฅด๋ฏ๋ก, scikit-learn ์ฌ์ฉ ๊ฒฝํ์ด ์๋ ๋ถ์ด๋ผ๋ฉด ๋๊ตฌ๋ ์ฝ๊ฒ ์ตํ ์ ์์ต๋๋ค. ๋ชจ๋ธ์ ์ ๋ ฅ์ผ๋ก ์ ๋ฌํด์ผ ํ๋ ๊ฒ์ ์ฒซ ๋ฒ์งธ ์ด์ด ๋ ์ง, ๋ ๋ฒ์งธ ์ด์ด ์์ธกํ ๊ฐ(์ด ๊ฒฝ์ฐ ๋งค์ถ)์ผ๋ก ๊ตฌ์ฑ๋ ๋ ์ด๋ก ์ด๋ฃจ์ด์ง Pandas ๋ฐ์ดํฐ ํ๋ ์์ ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ ์ ํ ํ์์ผ๋ก ์ ๊ณต๋๋ฉด, ๋ชจ๋ธ์ ๊ตฌ์ถํ๋ ๊ณผ์ ์ ๊ฐ๋จํฉ๋๋ค:
์ด์ ๋ฐ์ดํฐ์ ๋ชจ๋ธ์ ์ ์ฉํ์ผ๋ฏ๋ก ์ด๋ฅผ ์ฌ์ฉํ์ฌ 90์ผ ์์ธก์ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค:
๋๋ฌ์ต๋๋ค! ์ด์ Facebook Prophet ๋ชจ๋ธ์ ๋ด์ฅ๋ .plot ๋ฉ์๋๋ฅผ ํ์ฉํด ์ค์ ๋ฐ์ดํฐ์ ์์ธก ๋ฐ์ดํฐ์ ์ผ์น ์ฌ๋ถ๋ฅผ ์๊ฐํํ๊ณ , ๋ฏธ๋์ ๋ํ ์์ธก๋ ์ํํ ์ ์์ต๋๋ค. ์์ ์ธ๊ธ๋ ์ฃผ๊ฐ ๋ฐ ๊ณ์ ๋ณ ์์ ํจํด์ด ์์ธก ๊ฒฐ๊ณผ์ ๋ฐ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.

์ด ์๊ฐํ ๋ฐฉ๋ฒ์ ๋ค์ ๋ณต์กํ ์ ์์ต๋๋ค. Bartosz Mikulski๊ฐ ์ด์ ๋ํด ์์ธํ ๋ถ์์ ์ ๊ณตํ๊ณ ์์ผ๋ ํ์ธํด๋ณด์๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ฐ๋จํ ์ค๋ช ํ์๋ฉด, ๊ฒ์์ ์ ์ ์ค์ ๊ฐ์ ๋ํ๋ด๊ณ , ์งํ ํ๋์ ์ ์ ์์ธก ๊ฐ์, ์ฐํ ํ๋์ ๋ ๋ 95% ๋ถํ์ค์ฑ ๊ตฌ๊ฐ์ ๋ํ๋ ๋๋ค.
์ด์ ๋จ์ผ ๋ชจ๋ธ ๊ตฌ์ถ ๋ฐฉ๋ฒ์ ์์ฐํ์ผ๋, Spark์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ํ์ฉํด ์์ ์ ํ์ฅํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ ์ฒด ๋ฐ์ดํฐ ์ธํธ์ ๋ํ ๋จ์ผ ์์ธก์ด ์๋๋ผ, ๊ฐ ์ ํ-๋งค์ฅ ์กฐํฉ์ ๋ํด ์๋ฐฑ ๊ฐ์ ๋ชจ๋ธ๊ณผ ์์ธก์ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์์ฐจ์ ์ผ๋ก ์ํํ๋ฉด ์๊ฐ์ด ๋ง์ด ์์๋ ์ ์๋ ์์ ์ ๋๋ค.
์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ชจ๋ธ์ ๊ตฌ์ถํ๋ฉด, ์๋ฅผ ๋ค์ด ์๋ฃํ์ ์ฒด์ธ์์ ๊ฐ ์ง์ ๋ณ ์์์ ๋ฐ๋ผ ์๋์คํค ๋งค์ฅ๊ณผ ํด๋ฆฌ๋ธ๋๋ ๋งค์ฅ์ ํ์ํ ์ฐ์ ์ ์์ด ๋ค๋ฅด๋ค๋ ์ ํํ ์์ธก์ ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ๋ค์ ๋ง์ ๋ชจ๋ธ์ ํ๋ จํด์ผ ํ ๋ ์ข ์ข Spark์ ๊ฐ์ ๋ถ์ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ง์ ์ฌ์ฉํฉ๋๋ค. Spark ํด๋ฌ์คํฐ๋ฅผ ํ์ฉํ๋ฉด ํด๋ฌ์คํฐ ๋ด ๊ฐ๋ณ ์์ ์ ๋ ธ๋๋ค์ด ๋ค๋ฅธ ์์ ์ ๋ ธ๋๋ค๊ณผ ๋ณ๋ ฌ๋ก ๋ชจ๋ธ์ ํ์ ์งํฉ์ ํ๋ จํ ์ ์์ด, ์ ์ฒด ์๊ณ์ด ๋ชจ๋ธ ์ปฌ๋ ์ ์ ํ๋ จํ๋ ๋ฐ ํ์ํ ์๊ฐ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค.
๋ฌผ๋ก , ์์ปค ๋ ธ๋(์ปดํจํฐ) ํด๋ฌ์คํฐ์์ ๋ชจ๋ธ์ ํ๋ จํ๋ ค๋ฉด ๋ ๋ง์ ํด๋ผ์ฐ๋ ์ธํ๋ผ๊ฐ ํ์ํ๊ณ , ์ด์๋ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค. ํ์ง๋ง ์จ๋๋งจ๋ ํด๋ผ์ฐ๋ ๋ฆฌ์์ค๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์, ๊ธฐ์ ์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ์ ์ํ๊ฒ ํ๋ก๋น์ ๋ํ๊ณ , ๋ชจ๋ธ์ ํ๋ จํ ํ ํด๋น ๋ฆฌ์ ์ค๋ฅผ ์ ์ํ๊ฒ ํด์ ํจ์ผ๋ก์จ ๋ฌผ๋ฆฌ์ ์์ฐ์ ๋ํ ์ฅ๊ธฐ์ ์ธ ์ฝ์ ์์ด๋ ๋๊ท๋ชจ ํ์ฅ์ฑ์ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
Spark์์ ๋ถ์ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ๋ฌ์ฑํ๋ ํต์ฌ ๋ฉ์ปค๋์ฆ์ DataFrame์ ๋๋ค. Spark ๋ฐ์ดํฐํ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ฉด, ํด๋ฌ์คํฐ ์ ์ฒด์ ์์ ์๋ค์๊ฒ ๋ฐ์ดํฐ๊ฐ ๋ถ์ฐ๋์ด, ์ด๋ค์ด ๋ฐ์ดํฐ์ ํ์ ์งํฉ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ํจ์ผ๋ก์จ, ์์ ์ ์ํํ๋ ๋ฐ ํ์ํ ์ ์ฒด ์๊ฐ์ด ๋จ์ถ๋ฉ๋๋ค.
๋ฌผ๋ก , ๊ฐ ์์ ์๋ ์์ ์ด ๋ด๋นํ๋ ์์ ์ ์ํํ๊ธฐ ์ํด ํ์ํ ๋ฐ์ดํฐ์ ์ผ๋ถ์ ์ ๊ทผํ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด, ํค ๊ฐ(์ด ๊ฒฝ์ฐ๋ ๋งค์ฅ๊ณผ ์ํ์ ์กฐํฉ)์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ์ฌ, ํด๋น ํค ๊ฐ์ ์ํ๋ ๋ชจ๋ ์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ํน์ ์์ ๋ ธ๋์ ์ง์ค์ํฌ ์ ์์ต๋๋ค.
๋ค์ ์น์ ์์๋ ์ฌ์ฉ์ ์ ์ Pandas ํจ์๋ฅผ ์ค์ ํ๊ณ ๋ฐ์ดํฐ์ ์ ์ฉํ๋ ๊ณผ์ ์ ๋ค๋ฃจ์ง๋ง, ์ค์ ๋ก ๊ทธ ๋จ๊ณ์ ์ด๋ฅด๊ธฐ ์ ๊น์ง๋ ์คํ๋์ง ์์ต๋๋ค. ์ฌ๊ธฐ์๋, ๊ทธ๋ฃน๋ณ๋ก ์ฝ๋๋ฅผ ๊ณต์ ํจ์ผ๋ก์จ ์ฌ๋ฌ ๋ชจ๋ธ์ ํจ๊ณผ์ ์ผ๋ก ๋ณ๋ ฌ๋ก ํ๋ จ์ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ ๊ฐ์กฐํ๊ณ ์ ํฉ๋๋ค.
๋ค์ ์น์ ์์๋ ์ฌ์ฉ์ ์ ์ ํ๋ค์ค ํจ์๋ฅผ ์ค์ ํ๊ณ ๋ฐ์ดํฐ์ ์ ์ฉํ๋ ๊ณผ์ ์ ๋ค๋ฃจ๊ฒ ์ง๋ง, ์ค์ ๋ก ๊ทธ ๊ณผ์ ์ด ์๋ฃ๋๊ธฐ ์ ๊น์ง๋ ์๋ํ์ง ์์ต๋๋ค. ์ฌ๊ธฐ์์ ๋ชฉ์ ์ ๊ทธ๋ฃน๋ณ ์ฝ๋๋ฅผ ๊ณต์ ํจ์ผ๋ก์จ ์ฌ๋ฌ ๋ชจ๋ธ์ ํจ์จ์ ์ผ๋ก ๋ณ๋ ฌ๋ก ํ๋ จํ ์ ์๋ ๋ฐฉ๋ฒ์ ๊ฐ์กฐํ๋ ๊ฒ์ ๋๋ค.
์๊ณ์ด ๋ฐ์ดํฐ๋ฅผ ๋งค์ฅ๊ณผ ์ ํ๋ณ๋ก ์ ์ ํ ๊ทธ๋ฃนํํ ๋ค, ์ด์ ๊ฐ ๊ทธ๋ฃน๋ง๋ค ๊ฐ๋ณ ๋ชจ๋ธ์ ํ์ต์์ผ์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด์๋ ๋ฐ์ดํฐ ํ๋ ์์ ๊ฐ ๋ฐ์ดํฐ ๊ทธ๋ฃน์ ์ฌ์ฉ์ ์ ์ ํจ์๋ฅผ ์ ์ฉํ ์ ์๋ Pandas ํจ์๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
์ด ํจ์๋ ๊ฐ ๊ทธ๋ฃน์ ๋ํ ๋ชจ๋ธ์ ํ์ตํ ๋ฟ๋ง ์๋๋ผ, ํด๋น ๋ชจ๋ธ์ ์์ธก ๊ฒฐ๊ณผ๋ ์์ฑํฉ๋๋ค. ๋น๋ก ์ด ํจ์๊ฐ ๋ค๋ฅธ ๊ทธ๋ฃน๊ณผ๋ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ ๋ฐ์ดํฐ ๊ทธ๋ฃน์ ํ์ตํ๊ณ ์์ธกํ๋ค ํ๋๋ผ๋, ๊ฐ ๊ทธ๋ฃน์์ ๋ฐํ๋ ๊ฒฐ๊ณผ๋ค์ ํ๋์ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ ํ๋ ์์ผ๋ก ํธ๋ฆฌํ๊ฒ ๋ชจ์์ง๋๋ค. ์ด๋ฅผ ํตํด ๋งค์ฅ๊ณผ ์ ํ ์์ค์์์ ์์ธก์ ์์ฑํ ์ ์์ผ๋ฉฐ, ๋ถ์๊ฐ์ ๊ด๋ฆฌ์๋ ์ด ๊ฒฐ๊ณผ๋ค์ ๋จ์ผ ์ถ๋ ฅ ๋ฐ์ดํฐ ์งํฉ์ผ๋ก ๋ฐ์๋ณผ ์ ์์ต๋๋ค.
์๋์ ๊ฐ๋ตํ๋ ์ฝ๋ ์์์์ ๋ณผ ์ ์๋ฏ์ด, ํจ์๋ฅผ ๊ตฌ์ถํ๋ ๊ณผ์ ์ ์๋์ ์ผ๋ก ๋จ์ํฉ๋๋ค. ์ด์ ๋ฒ์ ์ Spark์๋ ๋ค๋ฅด๊ฒ, ์ ๋ ฅ๊ณผ ๋ฐํ๋ ํ๋ค์ค ๊ฐ์ฒด์ ์ ํ, ์ฆ Python ์ ํ ํํธ๋ฅผ ์ง์ ํจ์ผ๋ก์จ ํจ์ ์ ์ธ์ ์๋นํ ๊ฐ์ํํ ์ ์์ต๋๋ค.
ํจ์ ์ ์ ๋ด์์๋ ๋ชจ๋ธ์ ์ธ์คํด์คํํ๊ณ , ๊ตฌ์ฑํ๋ฉฐ, ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ์ ๋ง๊ฒ ์กฐ์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ธ์ด ์์ธก์ ์ํํ๋ฉด, ํด๋น ๋ฐ์ดํฐ๊ฐ ํจ์์ ์ถ๋ ฅ์ผ๋ก ๋ฐํ๋ฉ๋๋ค.
์ด์ , ์์ ์ธ๊ธํ groupBy ๋ช ๋ น์ ์ฌ์ฉํด ๋ฐ์ดํฐ ์ธํธ๊ฐ ํน์ ๋งค์ฅ๊ณผ ์ ํ ์กฐํฉ์ ๋ํ๋ด๋ ๊ทธ๋ฃน์ผ๋ก ์ ์ ํ ๋๋์ด์ก๋์ง ํ์ธํฉ๋๋ค. ๊ทธ ๋ค์์ผ๋ก๋ ๋ฐ์ดํฐ ํ๋ ์์ ํจ์๋ฅผ ์ ์ฉํ์ฌ ๋ชจ๋ธ์ ํ์ต์ํค๊ณ , ๊ฐ ๋ฐ์ดํฐ ๊ทธ๋ฃน์ ๋ํ ์์ธก์ ์ํํ ์ ์๋๋ก ํฉ๋๋ค.
ํจ์๋ฅผ ๊ฐ ๊ทธ๋ฃน์ ์ ์ฉํ์ฌ ๋ฐํ๋ ๋ฐ์ดํฐ ์ธํธ๋ ์์ธก์ด ์์ฑ๋ ๋ ์ง๋ฅผ ๋ฐ์ํ๋๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ์ด ๊ณผ์ ์ ํตํด, ์ต์ข ์ ์ผ๋ก ๊ธฐ๋ฅ์ ์ค์ ํ๊ฒฝ์ ์ ์ฉํ ๋, ๋ค์ํ ๋ชจ๋ธ ์คํ ์ค์ ์์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ ํ๋ ๋ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
์ด์ ๋งค์ฅ-์ ํ ์กฐํฉ๋ณ ์์ธก์ ์์ฑํ์ต๋๋ค. ๋ถ์๊ฐ๋ SQL ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํด ๊ฐ ์ ํ์ ๋ํ ๋ง์ถค ์์ธก์ ํ์ธํ ์ ์์ต๋๋ค. ์๋ ์ฐจํธ์์๋ 10๊ฐ ๋งค์ฅ์ 1๋ฒ ์ ํ์ ๋ํ ์์ ์์๋ฅผ ๊ทธ๋ํ๋ก ๋ํ๋์ต๋๋ค. ๋ณด๋ค์ํผ, ์์ ์์ธก์ ๋งค์ฅ๋ง๋ค ๋ค๋ฅผ ์ ์์ง๋ง, ์ผ๋ฐ์ ์ธ ํจํด์ ๋ชจ๋ ๋งค์ฅ์์ ์ผ๊ด๋๊ฒ ๋ํ๋ฉ๋๋ค.

์๋ก์ด ํ๋งค ๋ฐ์ดํฐ๊ฐ ๋์ฐฉํ๋ฉด, ์ด๋ฅผ ๋ฐํ์ผ๋ก ์๋ก์ด ์์ธก์ ํจ์จ์ ์ผ๋ก ์์ฑํ์ฌ ๊ธฐ์กด ํ ์ด๋ธ ๊ตฌ์กฐ์ ์ถ๊ฐํจ์ผ๋ก์จ ๋ถ์๊ฐ๋ค์ด ์ํฉ ๋ณํ์ ๋ฐ๋ผ ๋น์ฆ๋์ค์ ๊ธฐ๋์น๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ธ๋ฆญ์ค ํ๊ฒฝ์์ ์ด๋ฌํ ์์ธก์ ์์ฑํ๊ธฐ ์ํด์๋ ์์ ์์ธก์ ์ํ ์๋ฃจ์ ์ก์ ๋ฌ๋ ์ดํฐ๋ฅผ ํ์ธํด ๋ณด์ธ์.
Spark 2.0์ ์ํด ์ ์๋ ์ด ๋ ธํธ๋ถ์ ์ด์ ๋ฒ์ ์ ์ ๊ทผํ๊ณ ์ถ์ผ์๋ค๋ฉด, ์ด ๋งํฌ๋ฅผ ํด๋ฆญํด ์ฃผ์ธ์.
๋ธ๋ก๊ทธ๋ฅผ ๊ตฌ๋ ํ๊ณ ์ต์ ๊ฒ์๋ฌผ์ ์ด๋ฉ์ผ๋ก ๋ฐ์๋ณด์ธ์.