注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
PySpark で集約を生成する方法はいくつかありますが、最も信頼性の高い構文をお勧めします。
Copied!1 2 3 4
# コードに日本語でコメントを追加します aggregated_df = df.groupBy('state').agg( F.max('city_population').alias('largest_city_in_state') # 各州の最大都市人口を求め、エイリアスとして'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()
メソッドは、集約を実行する任意の数の列を受け取ります。代わりに、DataFrame
全体で集約するには、列を含めません。
Copied!1 2 3 4 5 6 7 8 9 10
# 'state' と 'county' でグループ化し、各 'state' と 'county' の最大 'city_population' を取得します。 # これは、各 'state' と 'county' の最大都市の人口を表します。 aggregated_df = df.groupBy('state', 'county').agg( F.max('city_population').alias('largest_city_in_state_county') ) # 全体の 'city_population' の最大値を取得します。これは全体の最大都市の人口を表します。 aggregated_df = df.groupBy().agg( F.max('city_population').alias('largest_city_overall') )
グループ化された DataFrame
上の .agg()
メソッドは、任意の数の集約関数を取ります。
Copied!1 2 3 4 5 6 7
# DataFrame 'df' を 'state' 列でグループ化し、各州に対して以下の処理を行います。 aggregated_df = df.groupBy('state').agg( # 各州内の最大の 'city_population' 値を取得し、新たな列 'largest_city_in_state' として保存します。 F.max('city_population').alias('largest_city_in_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(行)