in spark/hbase-spark/src/main/scala/org/apache/hadoop/hbase/spark/datasources/HBaseTableScanRDD.scala [121:152]
private def buildGets(
tbr: TableResource,
g: Seq[Array[Byte]],
filter: Option[SparkSQLPushDownFilter],
columns: Seq[Field],
hbaseContext: HBaseContext): Iterator[Result] = {
g.grouped(relation.bulkGetSize).flatMap {
x =>
val gets = new ArrayList[Get](x.size)
val rowkeySet = new mutable.HashSet[String]()
x.foreach {
y =>
if (!rowkeySet.contains(y.mkString("Array(", ", ", ")"))) {
val g = new Get(y)
handleTimeSemantics(g)
columns.foreach {
d =>
if (!d.isRowKey) {
g.addColumn(d.cfBytes, d.colBytes)
}
}
filter.foreach(g.setFilter(_))
gets.add(g)
rowkeySet.add(y.mkString("Array(", ", ", ")"))
}
}
hbaseContext.applyCreds()
val tmp = tbr.get(gets)
rddResources.addResource(tmp)
toResultIterator(tmp)
}
}