类型转换猪 hcatalog
Posted
技术标签:
【中文标题】类型转换猪 hcatalog【英文标题】:Type conversion pig hcatalog 【发布时间】:2014-02-20 00:41:46 【问题描述】:我使用 HCatalog 0.4 版。我在配置单元“abc”中有一个表,其中有一列数据类型为“timestamp”。当我尝试运行这样的猪脚本时,“raw_data = load 'abc' using org.apache.hcatalog.pig.HCatLoader();”我收到一条错误消息“java.lang.TypeNotPresentException:类型时间戳不存在”。
【问题讨论】:
【参考方案1】:问题是 hcatalog 不支持时间戳类型。 它将在 hive 0.13 下得到支持,他们有一个关于这个问题的问题已经解决了,你可以在https://issues.apache.org/jira/browse/HIVE-5814看到这个问题
【讨论】:
【参考方案2】:如果您使用 Hive-Hcatalog 0.13.0 检查 HCatLoader 的路径,则必须使用 org.apache.hive.hcatalog.pig.HCatLoader()
而不是 org.apache.hcatalog.pig.HCatLoader()
【讨论】:
【参考方案3】:Hive 0.13 具有 Timestamp 数据类型。但是使用HCatLoader会有数据丢失的情况。
但是 Hive -> Pig 将使用 HCat Loader,纳秒会从时间戳中丢失。
Pig -> 使用 HCat Storer 的 Hive。使用毫秒根据时间戳进行转换。
参考:
https://cwiki.apache.org/confluence/display/Hive/HCatalog+LoadStore#HCatalogLoadStore-TypesinHive0.13.0andLater.1
【讨论】:
以上是关于类型转换猪 hcatalog的主要内容,如果未能解决你的问题,请参考以下文章
无法使用导入解析 org.apache.hcatalog.pig.hcatloader