Есть ли простой способ использовать PySpark DataFrame filter () для разделения кадра на ровно два кадра, основываясь на условии? - PullRequest
0 голосов
/ 13 февраля 2020

Я работаю над проектом хранилища данных. Я читаю входные данные в кадр, а затем хочу отфильтровать плохие строки. Тем не менее, я хочу напечатать несколько образцов плохих строк. Теперь у меня есть

df_good = df_input.filter(((df_input.info.isNull()) | (df_input.info == '')))

Этот фильтр работает, но я не могу распечатать образец пропущенных записей. Я хотел бы что-то вроде:

df_keep, df_reject = df_input.filter_split(((df_input.info.isNull()) | (df_input.info == '')))
print("Sample rejected records:")
df_reject.show(5)

Я нашел один метод, который включает запуск фильтра, затем объединение хороших данных с исходными данными с помощью внешнего соединения, а затем фильтрацию, чтобы найти исходные данные, не в хорошем наборе данных. Но это повторяет исходные данные дважды; Я хотел бы пройти список только один раз.

Есть идеи? Я делаю это в AWS Glue, поэтому я могу использовать функцию Dynami c Frame.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...