Spark]Sparkデータフレームの主な方法-(3)Group By
GroupByメソッド
サマリ
a.基本的な使い方
グループByが
# 기본 사용법
titanic_sdf.groupBy('Pclass').count().show()
# 정렬
titanic_sdf.groupBy('Pclass').count().orderBy('count', ascending=False).show()
# 메서드 내부에 인자로 컬럼명 입력
titanic_sdf.groupBy('Pclass').max('Age').show()
# 여러 컬럼에 적용
titanic_sdf.groupBy('Pclass', 'Sex').max('Age').show()
titanic_sdf.groupBy(['Pclass', 'Sex']).max('Age').show()
b.注意事項
c.agg()方法
# 호출
from pyspark.sql.functions import max, avg, sum, min
# 여러 컬럼에 서로 다른 aggregation 적용
titanic_sdf.groupBy('Pclass').agg(
max('Age'), min('Age'), sum('Age'), avg('Age')
).show()
# 별명 (alias) 부여
titanic_sdf.groupBy('Pclass').agg(
max(col('Age')).alias('max_age'), min('Age').alias('min_age'), \
sum('Age').alias('sum_age'), avg('Age').alias('avg_age') \
).show()
# ** filter() 사용
titanic_sdf.groupBy('Pclass').agg(
max(col('Age')).alias('max_age'), min('Age').alias('min_age') , \
sum('Age').alias('sum_age'), avg('Age').alias('avg_age') \
).filter(col('max_age') > 70).show()
select max_age, min_age, sum_avg, avg_age
from (
select max(age) as max_age
, min(age) as min_age
, sum(age) as sum_age
, avg(age) as avg_age
from titanic_sdf
group by pclass
) where max_age > 70
Reference
この問題について(Spark]Sparkデータフレームの主な方法-(3)Group By), 我々は、より多くの情報をここで見つけました https://velog.io/@baekdata/sparkgroupbyテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol