问题
I use HCatalog version 0.4. I have a table in hive 'abc' which has a column with datatype 'timestamp'. When i try to run a pig script like this "raw_data = load 'abc' using org.apache.hcatalog.pig.HCatLoader();" i get an error saying "java.lang.TypeNotPresentException: Type timestamp not present".
回答1:
The problem is that hcatalog doesn’t support timestamp type. It will be supported under hive 0.13, they have an issue about this problem that was already solved, you can see the issue in https://issues.apache.org/jira/browse/HIVE-5814
回答2:
If you use Hive-Hcatalog 0.13.0 check path to HCatLoader, you must use org.apache.hive.hcatalog.pig.HCatLoader()
instead org.apache.hcatalog.pig.HCatLoader()
回答3:
Hive 0.13 has Timestamp data type. But there will be data loss when using HCatLoader.
But Hive - > Pig will using HCat Loader, the nanoseconds will be lost from timestamp.
Pig - > Hive using HCat Storer. Translates based on Timestamp using milli seconds.
Reference:
https://cwiki.apache.org/confluence/display/Hive/HCatalog+LoadStore#HCatalogLoadStore-TypesinHive0.13.0andLater.1
来源:https://stackoverflow.com/questions/21895789/type-conversion-pig-hcatalog