Проверить наличие пустой строки в фрейме искры? - PullRequest
0 голосов
/ 19 ноября 2018

Запуск нескольких файлов CSV, и я пытаюсь запустить и сделать некоторые проверки, и по какой-то причине для одного файла я получаю NullPointerException, и я подозреваю, что есть какая-то пустая строка.

Итак, я запускаю следующее, и по какой-то причине он выдает мне OK вывод:

check_empty = lambda row : not any([False if k is None else True for k in row])
check_empty_udf = sf.udf(check_empty, BooleanType())
df.filter(check_empty_udf(sf.struct([col for col in df.columns]))).show()

Я что-то упустил в функции фильтра или мы не можем извлечь пустые строкис данных.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Вы можете использовать встроенную опцию для работы с такими сценариями.

val df = spark.read
     .format("csv")
     .option("header", "true")
     .option("mode", "DROPMALFORMED") // Drop empty/malformed rows
     .load("hdfs:///path/file.csv")

Проверьте эту ссылку - https://docs.databricks.com/spark/latest/data-sources/read-csv.html#reading-files

0 голосов
/ 19 ноября 2018

Вы можете использовать df.dropna () , чтобы отбрасывать пустые строки и затем сравнивать счетчики.

Что-то вроде

df_clean = df.dropna()
num_empty_rows = df.count() - df_clean.count()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...