PySpark 计算每列的平均值

PySpark 计算每列的平均值

在本文中,我们将介绍如何使用 PySpark 在一行中计算每列的平均值。PySpark 是 Apache Spark 提供的一个用于大数据处理的 Python API。我们将通过示例代码演示如何使用 PySpark 中的函数来计算每列的平均值。

阅读更多:PySpark 教程

导入 PySpark

在开始之前,我们首先需要导入 PySpark。我们可以使用以下代码导入 PySpark 并创建一个 SparkSession 对象:

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("CalculateMean") \
    .getOrCreate()

创建 DataFrame

接下来,我们需要创建一个 DataFrame,以便进行平均值计算。这里我们将使用一个示例数据集,该数据集包含了一些学生成绩信息。我们可以使用以下代码创建 DataFrame:

data = [("Alice", 80, 90, 95),
        ("Bob", 75, 85, 80),
        ("Charlie", 90, 85, 80)]

df = spark.createDataFrame(data, ["Name", "Math", "English", "Science"])
df.show()

上述代码创建了一个包含四个列的 DataFrame,列名分别为 “Name”、”Math”、”English” 和 “Science”。数据集包含了三个学生的成绩信息。

计算每列的平均值

有了 DataFrame,我们可以使用 Pandas 中的函数来计算每列的平均值。PySpark 提供了 agg() 函数,该函数可以用于计算某个列或所有列的聚合值。

以下是计算每列平均值的示例代码:

from pyspark.sql.functions import mean

cols = df.columns[1:]  # 获取除第一列之外的所有列

mean_values = df.agg([mean(col) for col in cols]).collect()[0]
result = {col: value for col, value in zip(cols, mean_values)}

print("每列的平均值:")
for col, value in result.items():
    print(f"{col}: {value}")

上述代码中,我们使用了 mean() 函数计算每列的平均值,并使用 agg() 函数将所有的平均值聚合在一起。最后,我们通过循环遍历每列的平均值,并将结果打印出来。

运行上述代码,我们可以得到以下输出结果:

每列的平均值:
Math: 81.66666666666667
English: 86.66666666666667
Science: 85.0

总结

在本文中,我们介绍了如何使用 PySpark 在一行中计算每列的平均值。通过使用 PySpark 的函数和方法,我们可以轻松地对大数据进行处理和分析。希望这篇文章对你理解 PySpark 的使用有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程