diff --git a/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java b/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java
index 503c574af1f7f7dbcc2ececd8c8bff9ffc291fd1..05757b41f37b06dba7e8b604f3d062470b0c4556 100644
--- a/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java
+++ b/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java
@@ -233,17 +233,20 @@ public class KuduYCSBClient extends com.yahoo.ycsb.DB {
         scannerBuilder.setProjectedColumnNames(querySchema);
       }
 
-      PartialRow lowerBound = schema.newPartialRow();
-      lowerBound.addString(0, startkey);
-      scannerBuilder.lowerBound(lowerBound);
+      KuduPredicate.ComparisonOp comparisonOp;
       if (recordcount == 1) {
-        PartialRow upperBound = schema.newPartialRow();
-        // Keys are fixed length, just adding something at the end is safe.
-        upperBound.addString(0, startkey.concat(" "));
-        scannerBuilder.exclusiveUpperBound(upperBound);
+        comparisonOp = KuduPredicate.ComparisonOp.EQUAL;
+      } else {
+        comparisonOp = KuduPredicate.ComparisonOp.GREATER_EQUAL;
       }
+      KuduPredicate keyPredicate = KuduPredicate.newComparisonPredicate(
+          schema.getColumnByIndex(0),
+          comparisonOp,
+          startkey);
 
-      KuduScanner scanner = scannerBuilder.limit(recordcount) // currently noop
+      KuduScanner scanner = scannerBuilder
+          .addPredicate(keyPredicate)
+          .limit(recordcount) // currently noop
           .build();
 
       while (scanner.hasMoreRows()) {