gpt4 book ai didi

java - 使用Pig通过HBaseStorage访问HBASE

转载 作者:行者123 更新时间:2023-12-02 21:46:06 24 4
gpt4 key购买 nike

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

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

可以确定存在列族“foo”和列名“fail”,并且该列中存在记录。查询不返回任何记录。但是,以下查询返回记录:
test = load 'hbase://resultstable' using org.apache.pig.backend.hadoop.hbase.HBaseStorage('foo:fail*','-loadKey false') as (testresults:map[]);

请注意,这两个示例之间的区别在于后者使用'foo:fail *'作为参数。
我的猜测是,列名中存储了一个空终止符,并且二进制完全匹配比较失败,因为在第一个示例中,未明确传递空终止符(我认为这不应该)。

列“foo:fail”是使用标准HBase库通过一个Java字符串创建的,该字符串包含传递给相应HBase Java API调用的列名。

这是预期的行为吗?所有文档(包括O'Reilly书)并不暗示它是事实。

pig 版为0.13.0。 HBase版本是0.94.10。

最佳答案

您在第一个示例中错误地指定了类型。如果使用通配符,它​​将被映射到 map 。如果指定单个列,则它将被映射为标量数据类型。

关于java - 使用Pig通过HBaseStorage访问HBASE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25231346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com