0

データセットには、一部の文字列列に None または NA 値があります。データセットに含まれるこれらの null 値の数を数えたいですか? それに応じて、欠損値に使用するアプローチを決定します。

or 式を使用して、各列のデータフレームを効率的にフィルタリングする非常に効率的な方法を試しました。より効率的できちんとした方法でそれらをフィルタリングしたいと思います。rdd に変換せずに実行する方がよいでしょうが、データフレームを使用してこの種のフィルタリング rdd の方法を実行できない場合も許容されます。

このスレッドSpark SQL フィルターの複数のフィールドが私の質問に非常に似ていることがわかりましたが、列が非常に多いため、これをよりきちんとしたエレガントな方法で記述したいと考えています

// trainDataFull is my dataframe
val nullValues = Array("NA", "None")

val filtered = trainDataFull.filter(trainDataFull("Alley").isin(nullValues:_*) ||
      trainDataFull("MSZoning").isin(nullValues:_*) ||
      trainDataFull("Street").isin(nullValues:_*) ||
      trainDataFull("LotShape").isin(nullValues:_*) ||
      trainDataFull("LandContour").isin(nullValues:_*) ||
      trainDataFull("Utilities").isin(nullValues:_*) ||
      trainDataFull("LotConfig").isin(nullValues:_*) ||
      trainDataFull("LandSlope").isin(nullValues:_*) ||
      trainDataFull("Neighborhood").isin(nullValues:_*) ||
      trainDataFull("Condition1").isin(nullValues:_*) ||
      trainDataFull("Condition2").isin(nullValues:_*) ||
      trainDataFull("BldgType").isin(nullValues:_*) ||
      trainDataFull("HouseStyle").isin(nullValues:_*) ||
      trainDataFull("RoofStyle").isin(nullValues:_*) ||
      trainDataFull("RoofMatl").isin(nullValues:_*) ||
      trainDataFull("Exterior1st").isin(nullValues:_*) ||
      trainDataFull("Exterior2nd").isin(nullValues:_*) ||
      trainDataFull("MasVnrType").isin(nullValues:_*) ||
      trainDataFull("MasVnrArea").isin(nullValues:_*) ||
      trainDataFull("ExterQual").isin(nullValues:_*) ||
      trainDataFull("MasVnrArea").isin(nullValues:_*) ||
      trainDataFull("ExterQual").isin(nullValues:_*) ||
      trainDataFull("ExterCond").isin(nullValues:_*) ||
      trainDataFull("Foundation").isin(nullValues:_*) ||
      trainDataFull("BsmtQual").isin(nullValues:_*) ||
      trainDataFull("BsmtCond").isin(nullValues:_*) ||
      trainDataFull("BsmtExposure").isin(nullValues:_*)
    )

どの列に null 値がいくつあるかを確認したい。

4

1 に答える 1