2017-09-12 10 views
0

DataFrame内のすべての列の固有値の数を計算します。Apache Spark DataFrameのすべての列の固有値の計算方法

言って、私はこのようなデータフレームがあります形式の

x y z 
----- 
0 0 0 
0 1 1 
0 1 2 

をそして、私は別のデータフレーム(またはその他の構造)をしたい:

col | num 
--------- 
'x' | 1 
'y' | 2 
'z' | 3 

行うための最も効率的な方法だろう何それ?

答えて

0

countDistinctを使用して異なる値を数えることができます。 、すべての列にこれを適用する式のリストを構築するために列にmapを使用して、agg関数にこれを適用することが構文を可変引数:

val exprs = df.columns.map(x => countDistinct(x).as(x)) 
df.agg(exprs.head, exprs.tail: _*).show 
+---+---+---+ 
| x| y| z| 
+---+---+---+ 
| 1| 2| 3| 
+---+---+---+ 
関連する問題