在Spark中,可以使用groupBy
和agg
函數進行數據聚合。以下是一些常見的聚合操作:
from pyspark.sql.functions import count
# 假設有一個名為df的DataFrame,其中有一個名為"column_name"的列
aggregated_df = df.groupBy("column_name").agg(count("*"))
from pyspark.sql.functions import sum
# 假設有一個名為df的DataFrame,其中有一個名為"column_name"的列
aggregated_df = df.groupBy("column_name").agg(sum("column_name"))
from pyspark.sql.functions import avg
# 假設有一個名為df的DataFrame,其中有一個名為"column_name"的列
aggregated_df = df.groupBy("column_name").agg(avg("column_name"))
from pyspark.sql.functions import max
# 假設有一個名為df的DataFrame,其中有一個名為"column_name"的列
aggregated_df = df.groupBy("column_name").agg(max("column_name"))
from pyspark.sql.functions import min
# 假設有一個名為df的DataFrame,其中有一個名為"column_name"的列
aggregated_df = df.groupBy("column_name").agg(min("column_name"))
from pyspark.sql.functions import countDistinct
# 假設有一個名為df的DataFrame,其中有一個名為"column_name"的列
aggregated_df = df.groupBy("column_name").agg(countDistinct("column_name"))
這些示例僅展示了基本的聚合操作。你還可以使用agg
函數與多個聚合函數一起使用,例如:
from pyspark.sql.functions import sum, avg, count
# 假設有一個名為df的DataFrame,其中有一個名為"column_name"的列
aggregated_df = df.groupBy("column_name").agg(
sum("column_name"),
avg("column_name"),
count("*")
)
此外,你還可以使用groupBy
函數的多個參數進行更復雜的聚合操作,例如:
# 假設有一個名為df的DataFrame,其中有兩個名為"column1"和"column2"的列
aggregated_df = df.groupBy("column1", "column2").agg(
sum("column_name"),
avg("column_name"),
count("*")
)