1

PHP から Hbase にアクセスするために Thrift クライアントを使用しています。Hbase のバージョンは hbase-0.90.4-cdh3u3 です。

私の問題 (まあ、それは疑いのようなものです) は、Thrift API がTRowResultいくつかのメソッドを返すことになっていることです。たとえば: scannerGet、 ... 代わりに、単一のインスタンスgetRowWithColumnsを持つ配列を返します。TRowResult

それがなぜなのか誰か知っていますか?これらのメソッド (通常は単一の行を返すか、何も返さないはずです) が複数のTRowResultインスタンスを返す場合はありますか? ラッパー クラスでこの 1 行を単純にポップして、配列 (または空の配列がある場合は null) を返す代わりにそれを返すことはできますか?

.thrift のドキュメントは、返されるはずのものについて非常に明確です。

/** 
 * Get the specified columns for the specified table and row at the latest
 * timestamp. Returns an empty list if the row does not exist.
 * 
 * @return TRowResult containing the row and map of columns to TCells
 */
list<TRowResult> getRowWithColumns(

[...]

/**
 * Returns the scanner's current row value and advances to the next
 * row in the table.  When there are no more rows in the table, or a key
 * greater-than-or-equal-to the scanner's specified stopRow is reached,
 * an empty list is returned.
 *
 * @return a TRowResult containing the current row and a map of the columns to TCells.
 *
 * @throws IllegalArgument if ScannerID is invalid
 *
 * @throws NotFound when the scanner reaches the end
 */
list<TRowResult> scannerGet(

(廃盤@throws NotFoundですが)

ありがとう!

4

1 に答える 1

0

TRowResult オブジェクトの配列を返す getRows() および scannerGetList() メソッドがあります。cdh3u4 の hbase を使用しましたが、これらのメソッドが cdh3u3 に存在するかどうかはわかりません。ところで、cdh4 には既に hbase 0.92 が含まれており、スキャン フィルターがサポートされているはずです ;)

于 2012-06-14T10:58:30.057 に答える