spark์ ๋ฐ์ดํฐํ๋ ์ ์ฐ์ฐ๋ค์ ์ด์ฉํด ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ, ๋ณํ, ํต๊ณ ๋ฑ ๋ค์ํ ์ผ์ ์ํํ ์ ์๋ค.
๋ค์์ ๋ช๊ฐ์ง ์ฐ์ฐ๋ค๊ณผ ํ์ฉ ์์์ด๋ค.
ํ๋ก์ ์ ๊ณผ ํํฐ
df = df.select(df.colA, df.colB) # ํ๋ก์ ์
(colA์ colB๋ง ์ ํ)
df = df.where(df.colB < 5)) # ํํฐ
Column ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ์ถ๊ฐ, ์ญ์
df = df.withColumnRenamed("colA", "colB") # column ์ด๋ฆ ๋ณ๊ฒฝ
df = df.withColumn("largeA", expr("colA > 10000")) # colA์ ๊ฐ์ด 10000์ด์์ด๋ฉด True๋ฅผ ๊ฐ๋ column largeA๋ฅผ ์ถ๊ฐ
df = df.drop("colA") # colA ์ญ์
์ฐธ๊ณ ) alias์ withColumnRenamed์ ์ฐจ์ด -
- alias: ์ฟผ๋ฆฌ ๋ด์์ ์์์ ์ผ๋ก ์ปฌ๋ผ์ ๋ณ์นญ ๋ถ์ฌ
- withColumnRenamed: ๋ฐ์ดํฐํ๋ ์์ ์ปฌ๋ผ ์ด๋ฆ์ ์๊ตฌ์ ์ผ๋ก ๋ณ๊ฒฝ
์ง๊ณ
# Null์ด ์๋ colA ๊ฐ๋ค์ ๊ฐ์ง์
df = (df
.where(df.colA.isNotNull())
.agg(countDistinct(df.colA).alias("DistinctColANum"))
# Null์ด ์๋ colA ๊ฐ๋ค์ ์ข
๋ฅ
df = (df
.where(df.colA.isNotNull())
.distinct())
# colA์ ๊ฐ ๊ฐ์ ๊ฐฏ์๋ฅผ ์๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
df = (df
.groupBy("colA")
.count()
.orderBy("count", ascending=False))
# colA์ ํต๊ณ๊ฐ ๊ณ์ฐ
import pyspark.sql.functions as F
df = df.select(F.sum("colA"), F.avg("colA"), F.min("colA"), F.max("colA"))
๋ฐ์ํ
'๐ฝ Language & Frameworks > Spark' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฌ๋ ์คํํฌ] ๋ฐ์ดํฐํ๋ ์ ์ฝ๊ณ ๋ด๋ณด๋ด๊ธฐ (0) | 2023.11.19 |
---|---|
[๋ฌ๋ ์คํํฌ] Column๊ณผ Row (1) | 2023.11.19 |
[๋ฌ๋ ์คํํฌ] ๋ฐ์ดํฐํ๋ ์ ์คํค๋ง (0) | 2023.09.03 |
[๋ฌ๋ ์คํํฌ] ์คํํฌ ์ฐ์ฐ์ ์ข ๋ฅ (0) | 2023.09.03 |