๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ŠคํŒŒํฌ(Spark)2

์ŠคํŒŒํฌ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„(์ƒ์„ฑ, ์Šคํ‚ค๋งˆ) ์•ˆ๋…•ํ•˜์„ธ์š” ํฌ๋ฆฌ๋„ฅ์Šค์„๋ผ์Šค์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ŠคํŒŒํฌ์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ƒ์„ฑํ•˜๋Š” ๋ฒ•๊ณผ ์Šคํ‚ค๋งˆ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ์ƒ์„ฑ ๋จผ์ € ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ํ˜„์žฌ EPL ๋“์  ์ˆœ์œ„ ์ƒ์œ„ 5๋ช…์— ๋Œ€ํ•œ ์ •๋ณด๋กœ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์Šค์นผ๋ผ์—์„œ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค ๋•Œ๋Š” Sequence ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑํ•˜๋ฉด ์ปฌ๋Ÿผ ์ด๋ฆ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์— toDF() ๋ช…๋ น์–ด๋กœ ์ปฌ๋Ÿผ๋ช…์„ ์ง€์ •ํ•ด์ฃผ์‹œ๋ฉด ์ปฌ๋Ÿผ๋ช…์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. # ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ์ƒ์„ฑ(์ปฌ๋Ÿผ๋ช… X) val self_df = spark.createDataFrame(Seq(("์—˜๋ง ํ™€๋ž€๋“œ", 21), ("ํ•ด๋ฆฌ ์ผ€์ธ", 15), ("์ด๋ฐ˜ ํ† ๋‹ˆ", 12), ("๋ฏธํŠธ๋กœ๋น„์น˜", 11), ("๋ชจ๋ ˆ๋…ธ", 10))) # ๋ฐ.. 2023. 1. 14.
์ŠคํŒŒํฌ ๊ฒฝํ—˜ํ•ด๋ณด๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” ํฌ๋ฆฌ๋„ฅ์Šค์„๋ผ์Šค์ž…๋‹ˆ๋‹ค. ์ŠคํŒŒํฌ๋ฅผ ๊ณต๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ๋“ค์„ ์กฐ๊ธˆ์”ฉ ์ •๋ฆฌํ•ด ๋ณผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ๋งฅ๋ถ m1 ์—์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ŠคํŒŒํฌ ์„ค์น˜ ๋ฒ„์ „์€ 3.3.1 ์ž…๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ ์ €๋Š” ํ„ฐ๋ฏธ๋„์—์„œ pyspark ํ˜น์€ Spark์˜ bin ํด๋”์—์„œ pyspark ๋ช…๋ น์–ด๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์„ ์‹คํ–‰์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ์ด ํ™”๋ฉด์—์„œ ์ €ํฌ๋Š” ์ŠคํŒŒํฌ๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋„ ๋ฐฐ์›Œ๊ฐ€๋Š” ์ž…์žฅ์ด๋‹ˆ ๊ฐ„๋‹จํ•˜๊ฒŒ 2022 ์‹œ์ฆŒ K๋ฆฌ๊ทธ ๋“์  ์ˆœ์œ„ ๊ธฐ๋ก์„ ๊ฐ€์ง€๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ทธ๋ƒฅ ์›นํŽ˜์ด์ง€์˜ ๊ธ€์„ ๋ณต์‚ฌํ•ด์„œ ํ•˜๋‚˜์˜ csv ํŒŒ์ผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ค€๋น„๋˜์—ˆ๋‹ค๋ฉด ํ•œ ๋ฒˆ ์ŠคํŒŒํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ŠคํŒŒํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ž์„ธ.. 2023. 1. 7.