2015-09-10 4 views
2

Я пытаюсь вычесть две даты с помощью PIG.PIG вычесть две даты

У меня есть такие данные:

key_one, activation_date , deactivation_date (1456,2010-06-14 00:00:00,2011-01-01 00:00:00) (6524,2015-01-15 00:00:00,2015-02-07 00:00:00) (1541,2010-07-17 00:00:00,2012-03-07 00:00:00)

Я хочу, чтобы сделать разницу дат между deactivation_date и activation_date и в результате получают «key_one» и «дней между двумя датами».

DATA_OUTPUT = foreach MY_DATA generate key_one, 
       DaysBetween(deactivation_date, activation_date) as days_between_two_dates; 

Backend ошибка: Исключение при выполнении [POUserFunc (Name: POUserFunc (org.apache.pig.builtin.DaysBetween) [долго] - сфера-231 Оператор Key Сфера-231) детей: нуль на [] ]: java.lang.NullPointerException

Любые идеи, как решить эту проблему?

ответ

5

Есть deactivation_date и activation_date типа DateTime?

Если нет, то следующий должен помочь:

DATA_OUTPUT = foreach MY_DATA generate key_one, 
      DaysBetween(ToDate(deactivation_date, 'yyyy-MM-dd HH:mm:ss'), ToDate(activation_date, 'yyyy-MM-dd HH:mm:ss')) as days_between_two_dates; 
+0

Спасибо большое! :) – Marta