2017-09-18 9 views
1

カウントされません:。 df.groupBy( '​​A).agg(カウント( "A")を)スパークデータフレームgrouppingは、私はBAにカウント数を集計columグループ化されたスパークデータフレーム持ってヌル

+---------+----------------+ 
|a  |count(a)  | 
+---------+----------------+ 
|  null|    0| 
|  -90|   45684| 
+---------+----------------+ 


df.select('a).filter('aisNull).count 
を表示します明確にNULL値が最初にカウントされなかったことを示して

戻り

warning: there was one feature warning; re-run with -feature for details 
res9: Long = 26834 

この動作の理由は何ですか?カウントを正しく表示するためには、(グループ化の結果にnullが含まれていると)期待していたでしょう。

答えて

4

はい、特定の列に適用されたcountは、NULL値をカウントしません。あなたはヌル値を含めたい場合は、使用します。

df.groupBy('a).agg(count("*")).show 
1

この現象の理由は何ですか?

SQL-92標準。 In particular(強調鉱山):

> Tが<セット機能指定の引数または引数源とします。

COUNT(*)が指定された場合、結果はそうでない場合、TXは単一列テーブルであるとするT.

の基数でありますの各行に<値式を適用し、ヌル値を削除した結果です。

DISTINCTが指定された場合、TXAはTXから冗長重複値を排除した結果とします。それ以外の場合は、TXAを TXにします。

COUNTが指定されている場合、 結果はTXAのカーディナリティです。

関連する問題