У меня есть пример использования, в котором мне нужно взять дату месяца, чтобы вернуть последнюю дату предыдущего месяца.
Ex: input:20150331 output:20150228
Я буду использовать последнюю дату этого предыдущего месяца, чтобы отфильтровать ежедневный раздел (в скрипте свиньи).
B = filter A by daily_partition == GetPrevMonth(20150331);
Я создал UDF (GetPrevMonth), который принимает дату и возвращает последнюю дату предыдущего месяца, но не может использовать ее в фильтре.
ERROR:Could not infer the matching function for GetPrevMonth as multiple or none of them fit. Please use an explicit cast.
Мой udf принимает кортеж в качестве входных данных. В Google говорится, что UDF нельзя применять к фильтрам. Есть ли обходной путь? или я где-то ошибаюсь?
UDF:public class GetPrevMonth extends EvalFunc<Integer> {
public Integer exec(Tuple input) throws IOException {
String getdate = (String) input.get(0);
if (getdate != null){
try{
//LOGIC to return prev month date
}
Нужна помощь. Заранее спасибо.