๋ฐ˜์‘ํ˜•

๐Ÿ‘ฝ Language & Frameworks/Spark 5

[๋Ÿฌ๋‹ ์ŠคํŒŒํฌ] ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์—ฐ์‚ฐ๊ณผ ์ „์ฒ˜๋ฆฌ

spark์˜ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์—ฐ์‚ฐ๋“ค์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ, ๋ณ€ํ™˜, ํ†ต๊ณ„ ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ์€ ๋ช‡๊ฐ€์ง€ ์—ฐ์‚ฐ๋“ค๊ณผ ํ™œ์šฉ ์˜ˆ์‹œ์ด๋‹ค. ํ”„๋กœ์ ์…˜๊ณผ ํ•„ํ„ฐ df = df.select(df.colA, df.colB) # ํ”„๋กœ์ ์…˜ (colA์™€ colB๋งŒ ์„ ํƒ) df = df.where(df.colB 10000")) # colA์˜ ๊ฐ’์ด 10000์ด์ƒ์ด๋ฉด True๋ฅผ ๊ฐ–๋Š” column largeA๋ฅผ ์ถ”๊ฐ€ df = df.drop("colA") # colA ์‚ญ์ œ ์ฐธ๊ณ ) alias์™€..

[๋Ÿฌ๋‹ ์ŠคํŒŒํฌ] ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ฝ๊ณ  ๋‚ด๋ณด๋‚ด๊ธฐ

๊ตฌ์กฐํ™”๋œ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด Spark ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋กœ๋“œํ•˜๊ณ , ํŠน์ • ํฌ๋งท์œผ๋กœ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์จ์„œ ๋‚ด๋ณด๋‚ด๊ธฐ ์œ„ํ•ด DataFrameReader์™€ DataFrameWriter ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. pyspark.sql.DataFrameReader — PySpark 3.5.0 documentation Interface used to load a DataFrame from external storage systems (e.g. file systems, key-value stores, etc). Use SparkSession.read to access this. Changed in version 3.4.0: Supports Spark Connect. spark.apache.or..

[๋Ÿฌ๋‹ ์ŠคํŒŒํฌ] Column๊ณผ Row

์ปฌ๋Ÿผ Column ์ŠคํŒŒํฌ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์—์„œ๋Š” Column์˜ ์ด๋ฆ„์„ ์ด์šฉํ•ด ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. pyspark.sql.Column — PySpark 3.5.0 documentation A column in a DataFrame. Changed in version 3.4.0: Supports Spark Connect. Select a column out of a DataFrame >>> df.name Column >>> df[“name”] Column spark.apache.org Pyspark์—์„œ column์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š” col("columnName") ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ,๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” df.columnName์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ์€ Column์„ ์ด์šฉํ•œ ์—ฐ์‚ฐ์˜..

[๋Ÿฌ๋‹ ์ŠคํŒŒํฌ] ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์Šคํ‚ค๋งˆ

์ŠคํŒŒํฌ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์€ ํŒ๋‹ค์Šค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์— ์˜ํ–ฅ์„ ๋ฐ›์•„ ๋งŒ๋“ค์–ด์ ธ ์ด๋ฆ„ ์žˆ๋Š” ์นผ๋Ÿผ๊ณผ ์Šคํ‚ค๋งˆ๋ฅผ ๊ฐ€์ง„ ๋ถ„์‚ฐ ์ธ๋ฉ”๋ชจ๋ฆฌ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค. ์Šคํ‚ค๋งˆ Schema ์Šคํ‚ค๋งˆ๋Š” ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์˜ ์นผ๋Ÿผ ์ด๋ฆ„๊ณผ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ •์˜ํ•œ ๊ฒƒ์ด๋‹ค. ์Šคํ‚ค๋งˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด๋“ค์ผ ๋•Œ ์ž๋™์œผ๋กœ ์ •์˜๋˜๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋ฏธ๋ฆฌ ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์ด ์žˆ๋‹ค. ๐Ÿ’ก ์ŠคํŒŒํฌ๊ฐ€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ถ”์ธกํ•ด์•ผ ํ•˜๋Š” ์ฑ…์ž„์„ ๋œ์–ด ์คŒ์œผ๋กœ์จ, ์Šคํ‚ค๋งˆ ํ™•์ •์„ ์œ„ํ•œ ๋ณ„๋„์˜ ์žก์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค. ๐Ÿ’ก ๋ฐ์ดํ„ฐ๊ฐ€ ์Šคํ‚ค๋งˆ์™€ ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์กฐ๊ธฐ์— ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” pyspark.sql.types์—์„œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ถˆ๋Ÿฌ์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ ํ•„๋“œ์˜ ์ด๋ฆ„๊ณผ Type์„ ..

[๋Ÿฌ๋‹ ์ŠคํŒŒํฌ] ์ŠคํŒŒํฌ ์—ฐ์‚ฐ์˜ ์ข…๋ฅ˜

์ŠคํŒŒํฌ ์—ฐ์‚ฐ์˜ ์ข…๋ฅ˜ ์ŠคํŒŒํฌ ์—ฐ์‚ฐ์€ ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜๊ณผ ์•ก์…˜ ๋‘๊ฐ€์ง€ ์ข…๋ฅ˜๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜์€ ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ์ŠคํŒŒํฌ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋ณ€ํ˜•ํ•˜๋Š” ๊ฒƒ์ด๊ณ , ์•ก์…˜์€ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋†“์•„์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๊ฐ ์—ฐ์‚ฐ์˜ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์—ฐ์‚ฐ ์ข…๋ฅ˜ ์˜ˆ์‹œ ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜ orderBy, groupBy, filter, select, join ์•ก์…˜ show, take, count, collect, save ์—ฐ์‚ฐ์˜ ์‹คํ–‰ ๋ชจ๋“  ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜ ์—ฐ์‚ฐ์€ ์ฆ‰์‹œ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๋ฆฌ๋‹ˆ์ง€ ํ˜•ํƒœ๋กœ ๊ธฐ๋ก๋œ๋‹ค. ์•ก์…˜ ์—ฐ์‚ฐ์ด ์‹คํ–‰๋  ๋•Œ ๊ทธ๋™์•ˆ ๊ธฐ๋ก๋œ ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜ ์—ฐ์‚ฐ๋“ค์ด ๋ฐœ๋™๋œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ณด๋‹ค ํšจ์œจ์ ์ธ ์‹คํ–‰๊ณผ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ข์€ ์˜์กด์„ฑ๊ณผ ๋„“์€ ์˜์กด์„ฑ ํŠธ๋žœ์Šคํฌ๋ฉ”์ด์…˜์€ ์ข์€ ์˜์กด์„ฑ๊ณผ ๋„“์€ ์˜์กด..

๋ฐ˜์‘ํ˜•