0

クラスターの HBase にアクセスするために、thrift インターフェイス ( http://apache.mesi.com.ar//incubator/thrift/0.5.0-incubating/ ) を使用しています。レコードを接続、取得、表示できます。開始日と終了日を使用します。

ドキュメント ( http://hbase.apache.org/docs/r0.89.20100924/apidocs/org/apache/hadoop/hbase/thrift/doc-files/Hbase.html#Fn_Hbase_scannerOpenWithStop ) によると、

列修飾子で正規表現を渡すこともできます。

私の質問は簡単です - どのように?

私の作業コード:

int scannerId = client.scannerOpenWithStop("TABLE_NAME".ToByteArray(),
    "START_ROW".ToByteArray(), "STOP_ROW".ToByteArray(),
    new List<string>(){"COLUMN_FAMILY" }.ToByteArrayList());

ToByteArray()ToByteArrayList()は、各文字列に対して ToByteArray を呼び出す ...List を使用した拡張関数であり、リストに詰め込みます。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:リストのエントリにコロン ( ) を追加するとCOLUMN_FAMILY:、データが返されます。完全な列名COLUMN_FAMILY:http://www.myurl.com/more/goes/hereを入力すると、その URL のすべての値が取得されます。

私がやりたいのは、COLUMN_FAMILY:http://www.myurl.com/.*(または他の正規表現) を持っていて、関連するデータを返すようにすることです。

必要な例は 1 つまたは 2 つだけです。正規表現を機能させるために欠けているフォーマットまたはトリックがあると思います。

4

1 に答える 1

0

COLUMN_FAMILY:/(?i:^http://www.myurl.com)/

先頭と末尾のように見えます/コンテンツを次のように解析する必要があることを伝えます

http://blog.hypertable.com/?cat=1

于 2011-05-08T05:40:44.690 に答える