0
if(df.count()== 0){ 
    System.out.println("df is an empty dataframe"); 
} 

上記は、NULLポインタ例外 を取得せずにDataFrameが空であるかどうかを確認する方法です。Javaを使用してSparkでカウントチェックを行う以外に、DataFramesが空であるかどうかをチェックする方法はありますか?

DataFrame dfが何百万ものレコードを取得すると、上記のステートメントは実行に時間がかかりすぎると私は心配しています。

+0

上記のコードでは、dfが有効なオブジェクトではない場合、NullPointerExceptionが発生します。一般に 'Object.count()'は安価な呼び出しです。 –

+0

はい、dfはDataFrameとして適切に宣言され、初期化されます。しかし、シナリオは値を持つこともあれば、空でもnullでもかまいません。 – user5626966

答えて

1

カウントを取得するのが遅くなる可能性があります。代わりに、head要素が空でないかどうかだけを確認することができます。

df.head(1).isEmpty 

dfが空の場合はjava.util.NoSuchElementExceptionを送出するので例外処理を追加します。

アップデート:私は他の文よりも、それより高価なので、df.count()を使用しないように、あなたをお勧めしHow to check if spark dataframe is empty

0

をチェックしてください。 あなたはまた、私は最近、そのようなシナリオに遭遇df.rdd.isEmpty

0

を使用することができますdf.take(1).isEmptydf.head(1).isEmpty

を使用することができます。 dataframeが空であるかどうかを確認する方法はいくつかあります。

  • df.count()== 0
  • df.head()のisEmpty
  • df.rdd.isEmpty
  • df.first()。それが、のisEmpty

それがより高価であるのでcount()を避ける方が良いです。しかし、dataframeがレコードを1行または全く持たないことが非常に確かな状況がいくつかあります(例:Hiveクエリでmax()関数を実行している場合)。このような状況では、count()を使用しても問題ありません。

+0

df.head()。isEmpty、df.rdd.isEmptyまたはdf.first().isEmptyが例外をスローしましたか? – user5626966

+0

例外はありますか? –

関連する問題