Мой код:
finalJoined.show();
Encoder<Row> rowEncoder = Encoders.bean(Row.class);
Dataset<Row> validatedDS = finalJoined.map(row -> validationRowMap(row), rowEncoder);
validatedDS.show();
Функция карты:
public static Row validationRowMap(Row row) {
//PART-A validateTxn()
System.out.println("Inside map");
//System.out.println("Value of CIS_DIVISION is " + row.getString(7));
//1. CIS_DIVISION
if ((row.getString(7)) == null || (row.getString(7)).trim().isEmpty()) {
System.out.println("CIS_DIVISION cannot be blank.");
}
return row;
}
Вывод:
finalJoined Dataset<Row>
правильно отображается со всеми столбцами и строками с правильными значениями, однако validatedDS Dataset<Row>
отображается только с одним столбцом с пустыми значениями.
*Ожидаемый результат: *
validatedDS также должен отображать те же значения, что и набор данных finalJoined, потому что я выполняю проверку только внутри функции карты и не изменяю сам набор данных.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.