2017-02-23 43 views
0

Я пытаюсь отфильтровать набор данных с значениями NA.found org.apache.spark.sql.DataFrameNaFunctions , но кажется, что его drop() или drop («any»), похоже, не работают должным образом. ..or пожалуйста, поделитесь использование в Java ..thank вы ...Любой пример использования Apache Spark org.apache.spark.sql.DataFrameNaFunctions? ..drop(), похоже, не работает?

import org.apache.spark.sql.DataFrameNaFunctions; 
    Dataset<Row> inputDS=spark.read().option("header","true"). 
           csv("inputfile.csv"); 
    inputDS.show(); 

    //Updated dataset...remove null or NAN 
    DataFrameNaFunctions inputDatasetsansNullorNAN=new DataFrameNaFunctions(inputDS); 
    Dataset<Row> inputDSnulldropped=inputDatasetsansNullorNAN.drop(); 
    inputDSnulldropped.show(); 

............

name item 

1.Alice входного файла, молоко 2. Боб, нуль 3. NA,
4. Тест, a 5. N А, Н. А. 6. нуль, Н. А. 7. Боб, Н. А. 8. 9.

выход

имя элемента 1.Alice молоко 2.Bob нуль 3.Test 4. NA NA NA 5.null 6.Bob Н.А.

ответ

0

DataFrameNaFunctions создается из па метод dataframe, так что вы должны делать что-то вроде этого:

val withoutNulls = inputDs.na.drop() 

Также обратите внимание, что значение null в csv достигается без значения (например, 3,, 4 означает, что столбец между 3 и 4 является нулевым). Если вы вместо этого используете что-то вроде строки «null», то функции na не будут работать. Вместо этого вы можете сделать что-то вроде:

val withoutNulls = inputDs.filter(!($"columnName" === "null")) 
+0

спасибо .. получение DataframeNAFunctions из na и используя отбрасывание работа. Я попробовал другой фрагмент для значений, таких как NA или null .. но не получал его с помощью java ... inputDS.filter (! ($ Item == "null")) – Binu

+0

извините, === это scala-стенография. Попробуйте inputDs.filter (col ("columnName"). NotEqual ("null")) –

+0

Спасибо, что работает отлично. – Binu