HappyBase - 有相当于find_one还是scan_one?

时间:2014-05-20 02:22:24

标签: hadoop hbase happybase

我正在创建UI的特定HBase表中的所有行恰好具有相同的列,并且在可预见的将来也会如此。我希望我的html数据可视化应用程序只需查询一个随机行来记录列名,并将这个列名列表放入一个变量中以引用整个程序。

我在HappyBase的文档中没有看到任何与find_one或scan_one相同的内容。

实现这一目标的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

这将仅获取第一行:

row = next(table.scan(limit=1))

此外,您可以指定一个过滤字符串,以避免检索这些值,只有在您的值很大且经常执行此查询时才值得。

答案 1 :(得分:2)

我使用'limit'选项。 这是我的HappyBase Python代码:

pool1 = happybase.ConnectionPool(size=2, host='172.00.00.01')
with pool1.connection() as conn1:
    hTable = conn1.table('HBastTableHere')
    for rowKey, rowData in hTable.scan(  limit=1):
        print rowData

答案 2 :(得分:1)

您可以创建Scanner对象,而无需指定起始行(以便从表中的第一行开始),并将扫描限制为一行。然后你将获得第一行。

从HBase shell命令看起来应如下所示:

scan 'table_name', {LIMIT => 1}

我不知道HappyBase,但我认为你应该能够做到这一点