📜  pyspark 在数据帧中分组和平均 - Python (1)

📅  最后修改于: 2023-12-03 14:45:52.728000             🧑  作者: Mango

PySpark 在数据帧中分组和平均

PySpark是Apache Spark基于Python API的接口,可用于大数据处理和分析。通过PySpark,程序员可以在分布式环境中使用Python编写程序,从而更快地处理和分析大型数据集。

在PySpark中,数据帧是最常用的数据结构。数据帧类似于关系型数据库中的表格,具有行和列的结构。数据帧能够处理大量的数据,并提供快速的查询和分析功能。

当处理大型数据集时,对数据进行分组和平均是一种常见的操作。在PySpark中,使用groupBy函数对数据帧进行分组,并使用agg函数计算平均值。

下面是一个示例程序,演示如何在PySpark中对数据帧进行分组和计算平均值。

from pyspark.sql.functions import avg

# 创建数据帧
data = [("John", "M", 21), 
        ("Jane", "F", 22),
        ("Bill", "M", 25), 
        ("Mary", "F", 23), 
        ("Mike", "M", 24)]

df = spark.createDataFrame(data, ["Name", "Gender", "Age"])

# 分组和计算平均值
result = df.groupBy("Gender").agg(avg("Age").alias("AvgAge"))

# 显示结果
result.show()

该程序首先创建一个包含五个元组的数据列表。然后使用createDataFrame函数将数据列表转换为数据帧。数据帧包含三列:Name、Gender和Age。

接下来,使用groupBy函数将数据帧按Gender列分组,并使用agg函数计算每个分组的平均年龄。结果数据帧包含两列:Gender和AvgAge。

最后,使用show函数显示结果数据帧。

结果输出如下:

+------+------+
|Gender|AvgAge|
+------+------+
|     F|22.5  |
|     M|23.333333333333332|
+------+------+

示例程序中的核心代码是groupByagg函数。groupBy函数按指定列对数据帧进行分组,而agg函数对每个分组进行聚合操作。在本例中,我们使用agg函数计算每个分组的平均年龄,并使用alias函数将结果列重命名为AvgAge。

这种使用PySpark进行分组和平均的方法可以适用于任何需要对数据进行聚合的情况。