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


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