diff --git a/hoodie-client/src/main/java/com/uber/hoodie/io/compact/HoodieRealtimeTableCompactor.java b/hoodie-client/src/main/java/com/uber/hoodie/io/compact/HoodieRealtimeTableCompactor.java index 024bd3a49..42c475502 100644 --- a/hoodie-client/src/main/java/com/uber/hoodie/io/compact/HoodieRealtimeTableCompactor.java +++ b/hoodie-client/src/main/java/com/uber/hoodie/io/compact/HoodieRealtimeTableCompactor.java @@ -126,14 +126,13 @@ public class HoodieRealtimeTableCompactor implements HoodieCompactor { return Lists.newArrayList(); } - Option oldDataFileOpt = hoodieCopyOnWriteTable.getROFileSystemView() - .getDataFileOn(operation.getPartitionPath(), operation.getBaseInstantTime(), operation.getFileId()); + Option oldDataFileOpt = operation.getBaseFile(); // Compacting is very similar to applying updates to existing file Iterator> result; // If the dataFile is present, there is a base parquet file present, perform updates else perform inserts into a // new base parquet file. - if (operation.getDataFilePath().isPresent()) { + if (oldDataFileOpt.isPresent()) { result = hoodieCopyOnWriteTable .handleUpdate(commitTime, operation.getFileId(), scanner.getRecords(), oldDataFileOpt.get()); } else { diff --git a/hoodie-common/src/main/java/com/uber/hoodie/common/model/CompactionOperation.java b/hoodie-common/src/main/java/com/uber/hoodie/common/model/CompactionOperation.java index e369f71d2..35ebea96e 100644 --- a/hoodie-common/src/main/java/com/uber/hoodie/common/model/CompactionOperation.java +++ b/hoodie-common/src/main/java/com/uber/hoodie/common/model/CompactionOperation.java @@ -110,6 +110,11 @@ public class CompactionOperation implements Serializable { return id; } + public Option getBaseFile() { + //TODO: HUDI-130 - Paths return in compaction plan needs to be relative to base-path + return dataFilePath.map(df -> new HoodieDataFile(df)); + } + /** * Convert Avro generated Compaction operation to POJO for Spark RDD operation * @param operation Hoodie Compaction Operation