В наборе данных, который у меня есть значения None или NA для некоторых строковых столбцов, я хочу подсчитать, сколько из этих значений NULL содержит набор данных? В соответствии с этим решите, какой подход использовать для пропущенных значений.
Я очень эффективно пытался отфильтровать Dataframe для каждого столбца с выражением или. Я хочу отфильтровать их более эффективно и аккуратно. Будет лучше сделать это без преобразования в rdd, но если это невозможно, используя dataframe для такого рода фильтрации, также приемлемый способ rdd.
Я нашел эту тему Spark SQL filter несколько полей так похож на мой вопрос, но я хочу более аккуратный и элегантный способ написать это, потому что у меня так много столбцов
// 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:_*)
)
Я хочу посмотреть, в каком столбце сколько пустых значений.