📌  相关文章
📜  在 PySpark 数据框中显示不同的列值(1)

📅  最后修改于: 2023-12-03 15:07:46.168000             🧑  作者: Mango

在 PySpark 数据框中显示不同的列值

在 PySpark 中,我们经常需要对数据框进行分析和操作。有时候,我们需要查看数据框中某列的不同取值,以了解数据的基本情况。本文将介绍如何在 PySpark 数据框中显示不同的列值。

创建一个示例数据框

首先,我们创建一个简单的数据框,用于演示如何显示不同的列值。以下代码将创建一个包含 id 和 age 两列的数据框:

from pyspark.sql import SparkSession

# 创建一个 SparkSession 对象
spark = SparkSession.builder.appName("ShowDistinctValues").getOrCreate()

# 创建一个包含 id 和 age 两列的数据框
data = [(1, 20), (2, 25), (3, 30), (4, 20), (5, 25)]
df = spark.createDataFrame(data, ["id", "age"])
使用 distinct() 方法显示不同的列值

要显示某列的不同取值,我们可以使用数据框的 distinct() 方法。以下代码将显示 age 列的不同取值:

# 显示 age 列的不同取值
distinct_values = df.select("age").distinct().collect()
print("Distinct values of age column:")
for row in distinct_values:
    print(row.age)

输出结果为:

Distinct values of age column:
20
25
30
使用 groupBy() 和 count() 方法统计不同列值的数量

除了显示不同的列值,有时候我们还需要统计每个不同列值的数量。为此,我们可以使用数据框的 groupBy() 和 count() 方法。以下代码将统计 age 列中每个不同值的数量:

# 统计 age 列中每个不同值的数量
count_values = df.groupBy("age").count().collect()
print("Value counts of age column:")
for row in count_values:
    print(row.age, row["count"])

输出结果为:

Value counts of age column:
20 2
25 2
30 1
结论

在 PySpark 中,我们可以使用 distinct() 方法显示某列的不同取值,使用 groupBy() 和 count() 方法统计不同列值的数量。这些方法可以帮助我们了解数据的基本情况,做出更好的数据分析和决策。