我正在使用 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()
and是扩展函数,其中ToByteArrayList()
...List 为每个字符串调用 ToByteArray,列表中的内容等。我把它放在下面,以防我的 string->byte[] 转换方法可能导致问题。
public static byte[] ToByteArray(this string s)
{
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
return encoding.GetBytes(s);
}
当我运行上面的代码时,它返回的数据因 和 的变化而START_ROW
异STOP_ROW
。:
如果我在 List 中的条目中添加一个冒号 ( ),COLUMN_FAMILY:
它仍然会返回数据。如果我在其中输入一个完整的列名,COLUMN_FAMILY:http://www.myurl.com/more/goes/here
它将获得该 URL 的所有值。
我想要做的是拥有COLUMN_FAMILY:http://www.myurl.com/.*
(或其他正则表达式)并让它返回相关数据,就像文档似乎说的那样。
我只需要一两个例子。我认为我缺少一些格式或技巧来使正则表达式正常工作。