0

WholeRowIterator を使用して行をフィルター処理した後、列をフィルター処理しようとしています。これは、保持する行を決定するのに役立つが、スキャンによって返されるデータには役立たない列を削除するためです。

WholeRowIterator は、RegExFilter などの別の反復子のソースとして適切に機能していないようです。キー/値が WholeRowIterator によってエンコードされていることはわかっています。

この反復子スタックを機能させるための解決策はありますか?

ありがとう。

4

1 に答える 1

1

通常、WholeRowIterator は、行 (多くのキー値) を単一のキー値にシリアル化する必要があるため、「スタック」の最後の反復子です。おそらく、何度もやりたくないでしょう。しかし、あなたがそれをしたいと仮定しましょう:

WholeRowIterator メソッドを使用して各 Key-Value を SortedMap にデシリアライズし、SortedMap を変更して単一の Key-Value に再シリアライズし、それを返す Iterator を作成する必要があります。この反復子には、WholeRowIterator に指定された優先度よりも高い優先度を割り当てる必要があります。

または、 WholeRowIteratorを拡張し、メソッドをオーバーライドencodeRow(List<Key>,List<Value>)して、最初から不要な列をシリアル化しないようにすることもできます。これにより、最初のアプローチの余分なシリアライゼーションとデシリアライゼーションを節約できます。

于 2015-01-20T21:08:39.680 に答える