В таблице commit_time
это БОЛЬШОЕ, а хранилище значений похоже на 20190508143744
когда я пытаюсь сравнить с commit_time > 1000
, он работает без ошибок
но когда я пытаюсь использовать commit_time > 20190508143743
, выдает ошибку, как показано ниже
2019-05-29 17:35:38,390 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: For input string: "20190508143743"
Шаги:
pig -useHCatalog
custProf = LOAD 'alisy3p.cust_change' using org.apache.hive.hcatalog.pig.HCatLoader();
// this step gives error
deviceChange= filter custProf by (commit_time > 20190508143743);
Также пробовал:
deviceChange= filter custProf by (commit_time > (bigint)20190508143743);
deviceChange= filter custProf by (commit_time > (long)20190508143743);
Согласно Свинья документация, вы должны указать константу biginteger, добавив BI
в конец числа. Попробуй это:
deviceChange = filter custProf by (commit_time > 20190508143743BI);
Да, biginteger доступен только в Pig 0.17, поэтому, если у вас более старая версия, вам нужно будет использовать long, как в вашем ответе.
Отвечать: deviceChange= отфильтровать custProf по (commit_time > 20190508143743л);
BIGINT не поддерживается, а BIGINTEGER отличается в соответствии с документацией улья, которую мы могли бы использовать Long.
https://pig.apache.org/docs/r0.17.0/basic.html#константы
Спасибо Savagedata за его вклад!
Спасибо за ответ, но это не сработало. Получил ошибку: «ОШИБКА org.apache.pig.tools.grunt.Grunt — ОШИБКА 1200: <строка 2, столбец 49> Синтаксическая ошибка, непредвиденный символ в или рядом с« 20190508143743BI »»