メインコンテンツまでスキップ

count_distinct

1 つまたは複数の列の個別のカウントの新しい列を返します。

構文

Python
from pyspark.sql import functions as sf

sf.count_distinct(col, *cols)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または列名

コンピュートする最初の列。

cols

pyspark.sql.Column または列名

他の列をコンピュートします。

戻り値

pyspark.sql.Column: これら 2 つの列の値が異なる値であること。

例1 : 単一列の重複しない値を数える

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(1,), (1,), (3,)], ["value"])
df.select(sf.count_distinct(df.value)).show()
Output
+---------------------+
|count(DISTINCT value)|
+---------------------+
| 2|
+---------------------+

例2 : 複数の列の重複しない値を数える

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(1, 1), (1, 2)], ["value1", "value2"])
df.select(sf.count_distinct(df.value1, df.value2)).show()
Output
+------------------------------+
|count(DISTINCT value1, value2)|
+------------------------------+
| 2|
+------------------------------+

例3 : 列名を文字列として一意の値を数える

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(1, 1), (1, 2)], ["value1", "value2"])
df.select(sf.count_distinct("value1", "value2")).show()
Output
+------------------------------+
|count(DISTINCT value1, value2)|
+------------------------------+
| 2|
+------------------------------+