首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在happybase扫描中将regex传递给coloumn属性

在happybase扫描中将regex传递给coloumn属性
EN

Stack Overflow用户
提问于 2013-10-01 09:54:15
回答 2查看 1.4K关注 0票数 0

在我的happybase扫描调用中,我试图将正则表达式的列表传递给column属性。这是因为,我的列名是由动态添加的ids组成的,而我在扫描时无法访问这些ids。

这个是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2013-11-28 04:39:20

HappyBase的作者在这里。

根据Thrift API,您可以在ScannerOpen() API家族的columns参数中传递正则表达式(请参见http://svn.apache.org/viewvc/hbase/trunk/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup#l717)。但是,HappyBase使用的Thrift API是ScannerOpenWithScan(),它使用TScan结构(请参阅http://svn.apache.org/viewvc/hbase/trunk/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup#l141),该结构不包含关于正则表达式的任何注释。实际上,我不知道(没有测试)这是否有效。

一种更灵活、更强大的方法是使用happybase.Table.scan()filter参数指定过滤器字符串。有关过滤器字符串的语法,请参见http://hbase.apache.org/book/thrift.html。在您的例子中,像"ColumnPrefixFilter('theprefix')"这样的东西应该可以做到这一点。HappyBase接口请参见http://happybase.readthedocs.org/en/latest/api.html#happybase.Table.scan

票数 3
EN

Stack Overflow用户

发布于 2015-06-03 04:16:58

我不熟悉HBase的语法。下面是我使用的happybase python代码,它对我很有效。感谢Wouter Bolsterlee!与'columns‘语句不同,您不必将'columnFamily’放在'ColumnPrefixFilter‘中。

代码语言:javascript
复制
import happybase
pool = happybase.ConnectionPool(size=3, host='172.xx.xx.xx')
with pool.connection() as conn1:
    hbaseTable = conn1.table('HBase_table_name_here')
    for rowKey, rowData in hbaseTable.scan(row_prefix= 'year-2015-', filter="ColumnPrefixFilter('month-06')", limit = 6):
        print rowData
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19106722

复制
相关文章

相似问题

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