首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用HBaseStorage访问HBASE

用HBaseStorage访问HBASE
EN

Stack Overflow用户
提问于 2014-08-10 17:43:15
回答 1查看 492关注 0票数 0

我一直在尝试用Pig来使用HBase类访问HBaseStorage。我正在用HBaseStorage用来匹配列的方法来发现奇怪的行为。请考虑以下示例:

代码语言:javascript
复制
test = load 'hbase://resultstable' using org.apache.pig.backend.hadoop.hbase.HBaseStorage('foo:fail','-loadKey false') as (testresults:map[]);

可以肯定的是,列族'foo‘和列名'fail’都存在,并且该列中存在记录。查询不返回记录。但是,以下查询返回记录:

代码语言:javascript
复制
test = load 'hbase://resultstable' using org.apache.pig.backend.hadoop.hbase.HBaseStorage('foo:fail*','-loadKey false') as (testresults:map[]);

注意这两个示例之间的不同之处,后者使用'foo:fail*‘作为参数。我的猜测是,在列名中存储了一个空终止符,而二进制精确匹配比较失败,因为在第一个示例中,空终止符没有显式传递(在我看来不应该是这样)。

列'foo:fail‘是通过一个包含被传递给适当的HBase HBase调用的列名的java字符串使用标准的HBase库创建的。

这是预期的行为吗?所有的文档(包括O‘’Reilly的书)都没有暗示它是这样的。

猪版为0.13.0。HBase版本为0.94.10。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-11 13:41:51

您在第一个示例中不正确地指定了类型。如果使用通配符,则会将其映射到地图。如果指定单个列,则它将映射到标量数据类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25231346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档