0
kudu
のターゲットテーブルが巨大です。私はscala
に次のようなことがあります。その行がkudu
に存在するかどうか確認したいと思います。これらの4つの列はkudu
テーブルの主キーですが、上限を定義するとすべての行を取得するようです。kuduスキャナを使用してkuduの特定の行をフィルタリングする
kudu
で特定の行を選択するにはどうすればよいですか?ここで私は1行だけが返されると期待しています。
val table2 : KuduTable = kuduClient.openTable("event-sets")
val eventColumns: util.List[String] = List(
OccurrenceSchema.SetId.name,
OccurrenceSchema.Period.name,
OccurrenceSchema.Event.name,
OccurrenceSchema.Date.name).asJava
val end:PartialRow = table2.getSchema.newPartialRow()
end.addInt(OccurrenceSchema.Period.name,1476)
end.addInt(OccurrenceSchema.SetId.name,82)
end.addInt(OccurrenceSchema.Event.name,3195167)
end.addLong(OccurrenceSchema.Date.name,1367922840000L)
val kuduScanner: KuduScanner = kuduClient.newScannerBuilder(table2)
.setProjectedColumnNames(eventColumns)
.lowerBound(end)
.exclusiveUpperBound((end))
.build()
assert(kuduScanner.hasMoreRows)
while (kuduScanner.hasMoreRows) {
val resultIterator: RowResultIterator = kuduScanner.nextRows()
while (resultIterator.hasNext) {
val result: RowResult = resultIterator.next()
assert(result != null)
logger.info(" : SetId Value -- " + result.getInt(OccurrenceSchema.SetId.name))
logger.info(" : Period Value -- " + result.getInt(OccurrenceSchema.Period.name))
logger.info(" : Event Value -- " + result.getInt(OccurrenceSchema.Event.name))
logger.info(" : Date Value -- " + result.getLong(OccurrenceSchema.Date.name))
}
}