HBase正则表达式列限定符

2024-09-28 18:12:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几个模式族的列:qualifier。以下是包含第一行值的列:

b'data:name': b'test33',  
b'data:appender.0.more.deep.0.name': b'nested', 
b'data:appender.0.more.deep.0.value': b'4711', 
b'data:appender.0.more.deep.1.name': b'nested2', 
b'data:appender.0.more.deep.1.value': b'42', 
b'data:appender.0.more.name': b'Alex', 
b'data:appender.0.more.process': b'buy', 
b'data:appender.0.more.value': b'1.0', 
b'data:appender.0.id': b'32542352352354432', 
b'data:appender.1.more.name': b'Andrew', 
b'data:appender.1.more.process': b'sell', 
b'data:appender.1.more.value': b'20.0', 
b'data:appender.1.id': b'deaf3232432', 
…
b'data:appender.47110.more.deep.name': b'3rfsdf3', 
b'data:appender.47110.more.deep.value': b'412', 
b'data:appender.47110.more.name': b'Jenny', 
b'data:appender.47110.more.process': b'buy', 
b'data:appender.47110.more.value': b'10.0', 
b'data:date': b'2020-11-02 12:18:49.479229', 
b'data:ob.0.cd': b'902359874598459834985093', 
b'data:ob.0.n': b'235a3ff4234234',    
b'data:s.c': b'hco', 
b'data:s.s.p': b'nm',  
b'data:id': b'5345345'

问题是如何使用HBase查询至少有一列“data:appender.NumberX.more.deep.NumberY.value”的值为42的行。我不知道NumberX或NumberY的最大数量。正如您在上面的示例中所看到的,NumberY不一定存在。这同样适用于NumberX

我不知道如何使用HBase(创建过滤器并将其作为python/happybase的输入)查询列,因为我是HBase新手。首先,我要检测列名的数字,如re.findall(“[0-9]*。”,键),然后用点替换它。我想创建一个类似以下数据的查询:appender.more.deep.name,它在所有可能的列中查找(例如在“data:appender.47110.more.deep.value”或“data:appender.0.more.deep.0.value”或“data:appender.0.more.deep.1.value”中)


Tags: nameiddatavaluemore模式buyprocess