PySpark에서 집계를 생성하는 데는 여러 가지 방법이 있습니다. 우리는 이 문법을 가장 신뢰할 수 있는 방법으로 추천합니다.
Copied!1 2 3 4
# 데이터프레임 df를 'state' 기준으로 그룹화하고, 각 주의 최대 도시 인구수를 구하여 'largest_city_in_state'라는 열 이름으로 추가합니다. aggregated_df = df.groupBy('state').agg( F.max('city_population').alias('largest_city_in_state') )
state | city | city_population |
---|---|---|
WA | Bellevue | 100000 |
WA | Seattle | 700000 |
PA | Philadelphia | 1500000 |
PA | Pittsburgh | 300000 |
state | largest_city_in_state |
---|---|
PA | 1500000 |
WA | 700000 |
DataFrame
에서 .groupBy()
메소드는 집계를 수행할 임의의 수의 열을 가져옵니다. Alternatively, 전체 DataFrame
에 걸쳐 집계하려면 열을 포함하지 마십시오.
Copied!1 2 3 4 5 6 7 8 9 10 11
# 데이터 프레임(df)를 'state', 'county' 기준으로 그룹화하고, 각 그룹의 'city_population' 최댓값을 구한 후, # 그 값을 'largest_city_in_state_county'라는 새로운 열로 추가합니다. aggregated_df = df.groupBy('state', 'county').agg( F.max('city_population').alias('largest_city_in_state_county') ) # 데이터 프레임(df) 전체에서 'city_population'의 최댓값을 구하고, # 그 값을 'largest_city_overall'이라는 새로운 열로 추가합니다. aggregated_df = df.groupBy().agg( F.max('city_population').alias('largest_city_overall') )
그룹화된 DataFrame
에 대한 .agg()
메소드는 임의의 수의 집계 Function을 사용합니다.
Copied!1 2 3 4 5 6 7
# 'state'별로 데이터를 그룹화합니다. aggregated_df = df.groupBy('state').agg( # 각 'state'의 'city_population' 최댓값을 찾아 'largest_city_in_state'라는 이름으로 저장합니다. F.max('city_population').alias('largest_city_in_state'), # 각 'state'의 'city_population' 평균값을 찾아 'average_population_in_state'라는 이름으로 저장합니다. F.avg('city_population').alias('average_population_in_state') )
기본적으로 집계는 aggregation_name(target_column)
형태의 열을 생성합니다. 그러나 Foundry에서는 열 이름에 괄호 또는 기타 영문/숫자가 아닌 문자를 포함할 수 없습니다. 대신 각 집계를 특정 이름으로 별칭을 지정하세요.
PySpark의 피벗 테이블은 일반적인 그룹화된 집계와 매우 유사하게 작동합니다.
Copied!1 2
# 'equipment' 으로 그룹화하고, 'sensor'를 피벗으로 사용하여 각 그룹의 'value' 평균을 계산합니다. pivoted_df = df.groupBy('equipment').pivot('sensor').mean('value')
장비 | 센서 | 값 |
---|---|---|
A | 온도 | 60 |
A | 온도 | 40 |
B | 속도 | 6 |
A | 속도 | 3 |
장비 | 온도 | 속도 |
---|---|---|
A | 50 | 3 |
B | null | 7 |
avg(열)
/ mean(열)
collect_list(열)
collect_set(열)
count(열)
corr(x, y)
x
와 y
의 피어슨 상관 계수.covar_pop(col1, col2)
covar_samp(col1, col2)
countDistinct(열, *cols)
first(열, ignorenulls=False)
grouping(열)
grouping_id(*cols)
kurtosis(열)
last(열, ignorenulls=False)
max(열)
min(열)
skewness(열)
stddev(열)
stddev_pop(열)
stddev_samp(열)
sum(열)
sumDistinct(열)
var_pop(열)
var_samp(열)
variance(열)