Недавно я начал использовать Spark и Java. В настоящее время я экспериментирую с преобразованиями и действиями RDD. На данный момент я читаю данные из csv, который содержит некоторые поля DateTime, а затем применяю фильтр, чтобы сохранить только те строки, которые моложе 2 дней, и, наконец, я проверяю, пуст ли результирующий RDD. Я написал простой фрагмент, который делает то, что я хочу, на минимальном уровне.
Function<List<String>, Boolean> filterPredicate = row -> new DateTime(row.get(1).isAfter(dtThreshold);
sc.textFile(inputFilePath)
.map(text -> Arrays.asList(text.split(",")))
.filter(filterPredicate)
.isEmpty();
В этом простом случае я предположил, что объекты DateTime всегда находятся в первом столбце. Теперь я хочу расширить это, чтобы использовать несколько индексов столбцов. Но для этого мне нужно иметь возможность определить предикатную функцию с более чем одной строкой. Именно по этой причине я отделил определение предикатной функции от кода преобразования.
Как я должен определить такую функцию?