diff --git a/hudi-spark-datasource/hudi-spark/src/main/java/org/apache/hudi/QuickstartUtils.java b/hudi-spark-datasource/hudi-spark/src/main/java/org/apache/hudi/QuickstartUtils.java index 025a828dcad17..2ba1e286481cc 100644 --- a/hudi-spark-datasource/hudi-spark/src/main/java/org/apache/hudi/QuickstartUtils.java +++ b/hudi-spark-datasource/hudi-spark/src/main/java/org/apache/hudi/QuickstartUtils.java @@ -193,8 +193,12 @@ public List generateUpdates(Integer n) throws IOException { * @return list of hoodie records to delete */ public List generateDeletes(List rows) { - return rows.stream().map(row -> - convertToString(row.getAs("uuid"), row.getAs("partitionpath"))).filter(os -> os.isPresent()).map(os -> os.get()) + // if row.length() == 2, then the record contains "uuid" and "partitionpath" fields, otherwise, + // another field "ts" is available + return rows.stream().map(row -> row.length() == 2 + ? convertToString(row.getAs("uuid"), row.getAs("partitionpath"), null) : + convertToString(row.getAs("uuid"), row.getAs("partitionpath"), row.getAs("ts")) + ).filter(os -> os.isPresent()).map(os -> os.get()) .collect(Collectors.toList()); } @@ -215,10 +219,10 @@ private static Option convertToString(HoodieRecord record) { } } - private static Option convertToString(String uuid, String partitionPath) { + private static Option convertToString(String uuid, String partitionPath, Long ts) { StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("{"); - stringBuffer.append("\"ts\": 0.0,"); + stringBuffer.append("\"ts\": \"" + (ts == null ? "0.0" : ts) + "\","); stringBuffer.append("\"uuid\": \"" + uuid + "\","); stringBuffer.append("\"partitionpath\": \"" + partitionPath + "\""); stringBuffer.append("}");