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


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


PySpark SQL 函数的 countDistinct(~) 方法返回指定列的不同行数。

参数

1.col | stringColumn

计算不同行时要考虑的列。

2. *col | stringColumn | optional

计算不同行时要考虑的附加列。

返回值

PySpark 列 (pyspark.sql.column.Column)。

例子

考虑以下PySpark DataFrame:

df = spark.createDataFrame([["Alex", 25], ["Bob", 30], ["Alex", 25], ["Alex", 50]], ["name", "age"])
df.show()



+----+---+
|name|age|
+----+---+
|Alex| 25|
| Bob| 30|
|Alex| 25|
|Alex| 50|
+----+---+

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

要计算列 name 中不同行的数量:

import pyspark.sql.functions as F
df.select(F.countDistinct("name")).show()



+--------------------+
|count(DISTINCT name)|
+--------------------+
|                   2|
+--------------------+

请注意,您可以传入 Column 对象,而不是传入列标签 ( "name" ),如下所示:

# df.select(F.countDistinct(df.name)).show()
df.select(F.countDistinct(F.col("name"))).show()



+--------------------+
|count(DISTINCT name)|
+--------------------+
|                   2|
+--------------------+

计算多个 PySpark 列中不同值的数量

在计算重复行时要考虑列 nameage

df.select(F.countDistinct("name", "age")).show()



+-------------------------+
|count(DISTINCT name, age)|
+-------------------------+
|                        3|
+-------------------------+

计算 PySpark DataFrame 中不同行的数量

要在计算重复行时考虑所有列,请传入 "*"

df.select(F.countDistinct("*")).show()



+-------------------------+
|count(DISTINCT name, age)|
+-------------------------+
|                        3|
+-------------------------+

相关用法


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