2016-06-21 12 views

Odpowiedz

18

countDistinct jest prawdopodobnie pierwszym wyborem:

import org.apache.spark.sql.functions.countDistinct 

df.agg(countDistinct("some_column")) 

Jeśli prędkość jest ważniejsza niż dokładność można rozważyć approxCountDistinct:

import org.apache.spark.sql.functions.approx_count_distinct 

df.agg(approxCountDistinct("some_column")) 

Aby uzyskać wartości i liczby :

df.groupBy("some_column").count() 

W języku SQL (spark-sql):

SELECT COUNT(DISTINCT some_column) FROM df 

i

SELECT approx_count_distinct(some_column) FROM df 
5
df.select("some_column").distinct.count 
+0

Czy to powiedzieć, jak rachubę każdej odrębnej wartości? Myślę, że to by powiedzieć, że masz wartości X, nie, że Val1 ma A, Val2 ma B, .. ValX ma C? –

Powiązane problemy