Как сравнить BIGINT в Свинья - PullRequest
0 голосов
/ 30 мая 2019

В таблице commit_time значение BIGINT и значение хранилища равно 20190508143744, когда я пытаюсь сравнить с commit_time > 1000, оно работает без ошибок, но когда я пытаюсь с commit_time > 20190508143743, выдает ошибку, как показано ниже

2019-05-29 17: 35: 38,390 [main] ОШИБКА org.apache.pig.tools.grunt.Grunt - ОШИБКА 1200: для входной строки: «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);

Также пробовал:

  1. deviceChange= filter custProf by (commit_time > (bigint)20190508143743);
  2. deviceChange= filter custProf by (commit_time > (long)20190508143743);

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Ответ: deviceChange = filter custProf by (commit_time> 20190508143743 L );

BIGINT не поддерживается, и BIGINTEGER отличается в соответствии с документацией улья, которую мы могли бы использовать Long.

https://cwiki.apache.org/confluence/display/Hive/HCatalog+LoadStore#HCatalogLoadStore-DataTypeMappings

https://pig.apache.org/docs/r0.17.0/basic.html#constants

Спасибо Savagedata за его вклад!

0 голосов
/ 30 мая 2019

Согласно документации Свинья , вы должны иметь возможность задать константу biginteger, добавив BI в конец числа.Попробуйте это:

deviceChange = filter custProf by (commit_time > 20190508143743BI);
...