[HUDI-2005] Fixing partition path creation in AbstractTableFileSystemView (#3769)
This commit is contained in:
committed by
GitHub
parent
5302b9a4ef
commit
35111131c3
@@ -21,6 +21,7 @@ package org.apache.hudi.table.action.commit;
|
||||
import org.apache.hudi.avro.model.HoodieClusteringPlan;
|
||||
import org.apache.hudi.avro.model.HoodieCompactionPlan;
|
||||
import org.apache.hudi.avro.model.HoodieRequestedReplaceMetadata;
|
||||
import org.apache.hudi.common.config.HoodieMetadataConfig;
|
||||
import org.apache.hudi.common.model.HoodieCommitMetadata;
|
||||
import org.apache.hudi.common.model.HoodieRecord;
|
||||
import org.apache.hudi.common.model.HoodieRecordLocation;
|
||||
@@ -217,7 +218,7 @@ public class TestUpsertPartitioner extends HoodieClientTestBase {
|
||||
final String testPartitionPath = "2016/09/26";
|
||||
int totalInsertNum = 2000;
|
||||
|
||||
HoodieWriteConfig config = makeHoodieClientConfigBuilder()
|
||||
HoodieWriteConfig config = makeHoodieClientConfigBuilder().withMetadataConfig(HoodieMetadataConfig.newBuilder().enable(false).build())
|
||||
.withCompactionConfig(HoodieCompactionConfig.newBuilder().compactionSmallFileSize(0)
|
||||
.insertSplitSize(totalInsertNum / 2).autoTuneInsertSplits(false).build()).build();
|
||||
|
||||
|
||||
@@ -285,9 +285,7 @@ public abstract class AbstractTableFileSystemView implements SyncableFileSystemV
|
||||
try {
|
||||
LOG.info("Building file system view for partition (" + partitionPathStr + ")");
|
||||
|
||||
// Create the path if it does not exist already
|
||||
Path partitionPath = FSUtils.getPartitionPath(metaClient.getBasePath(), partitionPathStr);
|
||||
FSUtils.createPathIfNotExists(metaClient.getFs(), partitionPath);
|
||||
long beginLsTs = System.currentTimeMillis();
|
||||
FileStatus[] statuses = listPartition(partitionPath);
|
||||
long endLsTs = System.currentTimeMillis();
|
||||
@@ -317,7 +315,13 @@ public abstract class AbstractTableFileSystemView implements SyncableFileSystemV
|
||||
* @throws IOException
|
||||
*/
|
||||
protected FileStatus[] listPartition(Path partitionPath) throws IOException {
|
||||
return metaClient.getFs().listStatus(partitionPath);
|
||||
// Create the path if it does not exist already
|
||||
if (!metaClient.getFs().exists(partitionPath)) {
|
||||
metaClient.getFs().mkdirs(partitionPath);
|
||||
return new FileStatus[0];
|
||||
} else {
|
||||
return metaClient.getFs().listStatus(partitionPath);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user