当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PySpark SQL Functions count_distinct方法用法及代码示例


PySpark SQL 函数的count_distinct(~) 方法计算指定列中不同值的数量。

参数

1.*cols | stringColumn

用于计算不同值数量的列。

返回值

PySpark Column 保存一个整数。

例子

考虑以下PySpark DataFrame:

df = spark.createDataFrame([["Alex", "A"], ["Bob", "A"], ["Cathy", "B"]], ["name", "class"])
df.show()



+-----+-----+
| name|class|
+-----+-----+
| Alex|    A|
|  Bob|    A|
|Cathy|    B|
+-----+-----+

计算PySpark中单列中不同值的数量

要计算 class 列中不同值的数量:

from pyspark.sql import functions as F
df.select(F.count_distinct("class").alias("c")).show()



+---+
|  c|
+---+
|  2|
+---+

在这里,我们将名称 "c" 赋予 count_distinct(~) 通过 alias(~) 返回的 Column

请注意,我们还可以向 count_distinct(~) 提供 Column 对象:

df.select(F.count_distinct(df["class"]).alias("c")).show()



+---+
|  c|
+---+
|  2|
+---+
获取整数计数

默认情况下, count_distinct(~) 返回 PySpark Column 。要获取整数计数:

df.select(F.count_distinct(df["class"])).collect()[0][0]



2

在这里,我们使用 select(~) 方法将Column转换为PySpark DataFrame。然后,我们使用 collect(~) 方法将DataFrame转换为Row对象列表。由于此列表中只有一个 Row 以及 Row 中的一个值,因此我们使用 [0][0] 来访问整数计数。

计算 PySpark 中一组列中不同值的数量

要计算列 nameclass 的不同值的数量:

df.select(F.count_distinct("name", "class").alias("c")).show()



+---+
|  c|
+---+
|  3|
+---+

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark SQL Functions | count_distinct method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。