2016-06-21 12 views

risposta

18

countDistinct è probabilmente la prima scelta:

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

df.agg(countDistinct("some_column")) 

Se la velocità è più importante della precisione si può considerare approxCountDistinct:

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

df.agg(approxCountDistinct("some_column")) 

Per ottenere i valori e conteggi :

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

In SQL (spark-sql):

SELECT COUNT(DISTINCT some_column) FROM df 

e

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

ti dice questo come conteggio di ogni valori distinti? Penso che questo ti direbbe che hai valori X, non che Val1 ha A, Val2 ha B, .. ValX ha C? –

Problemi correlati