From 165e942b2622e2d0b0332242ec37f3a07ec3ca93 Mon Sep 17 00:00:00 2001 From: wangxianghu Date: Tue, 22 Dec 2020 10:52:09 +0800 Subject: [PATCH] [HUDI-1471]Make QuickStartUtils generate deletes according to specific ts --- .../main/java/org/apache/hudi/QuickstartUtils.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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 025a828dcad1..2ba1e286481c 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("}");