본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

집계 및 피벗 표

집계 문법

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') )
statecitycity_population
WABellevue100000
WASeattle700000
PAPhiladelphia1500000
PAPittsburgh300000
statelargest_city_in_state
PA1500000
WA700000

예시

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
장비온도속도
A503
Bnull7

집계 함수

PySpark 집계 함수에 대해 더 알아보기.

avg(열) / mean(열)

collect_list(열)

  • 모든 값을 배열로 결합

collect_set(열)

  • 중복 제거된 배열로 모든 값을 결합

count(열)

corr(x, y)

  • xy의 피어슨 상관 계수.

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(열)