我正在使用thrift接口(http://apache.mesi.com.ar//incubator/thrift/0.5.0-incubating/)来访问我的集群上的HBase。我可以连接,获取和显示记录;使用开始和结束日期。
也可以在列限定符中传递正则表达式。
我的问题很简单 - 如何?
我的工作代码:
int scannerId = client.scannerOpenWithStop("TABLE_NAME".ToByteArray(),
"START_ROW".ToByteArray(), "STOP_ROW".ToByteArray(),
new List<string>(){"COLUMN_FAMILY" }.ToByteArrayList());
ToByteArray()
和ToByteArrayList()
是扩展函数,有...列表为每个字符串调用ToByteArray,列表中的东西等等。我把它放在下面,以防我的string-&gt; byte []转换方法导致问题。
public static byte[] ToByteArray(this string s)
{
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
return encoding.GetBytes(s);
}
当我运行上面的代码时,它返回的数据会因START_ROW
和STOP_ROW
的变化而变化。如果我将列表中的冒号(:
)添加到COLUMN_FAMILY:
,它仍会返回数据。如果我在COLUMN_FAMILY:http://www.myurl.com/more/goes/here
中添加完整的列名,则会获得该网址的所有值。
我想要做的是拥有COLUMN_FAMILY:http://www.myurl.com/.*
(或其他正则表达式)并让它返回相关数据,就像文档似乎可以说的那样。
我应该需要一两个例子。我认为有一些格式或技巧我缺少让正则表达式工作。
答案 0 :(得分:0)