0

スキャンに修飾子フィルターを適用して、すべての読み取りアイテムを取得しています。

QualifierFilter readItems = new QualifierFilter(CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes("read-1")));
readItems.isFamilyEssential(Bytes.toBytes("meta"));

結果には読み取りアイテムが含まれますが、他の列ファミリーは含まれません。

結果には、メタ列ファミリーと読み取り1修飾子のみが含まれます。

すべてのCFを取得し、アイテムのみを読み取るにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

現在、実行されている操作は、修飾子が制約に一致する KeyValue のみを保持することにより、 { KeyValue }_in から { KeyValue}_out へのフィルター処理です。これは、実行したいことではありません。修飾子「read-1」が存在しない場合は、行全体を除外します。次のロジックでこれを行うことができます (これは Groovy にありますが、意味があるはずです)。

def scan = new Scan()
scan.addFamily('COLUMN_FAMILY'.bytes)

def filter = new SingleColumnValueFilter('COLUMN_FAMILY'.bytes, 'read-1'.bytes, CompareFilter.CompareOp.NOT_EQUAL, new NullComparator())
filter.filterIfMissing = true
scan.filter = filter

パラメーターをいじるには良いスタートです。「read-1」列に何が入っているかわかりませんが、それがnullでない場合、これはあなたが望むことをするはずです(またはあなたを近づけますか?)。

幸運を!

于 2013-03-04T21:41:19.090 に答える