當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。