diff --git a/hudi-sync/hudi-sync-common/src/main/java/org/apache/hudi/sync/common/HoodieSyncConfig.java b/hudi-sync/hudi-sync-common/src/main/java/org/apache/hudi/sync/common/HoodieSyncConfig.java index b927cdb0c316e..c0d1075c7793c 100644 --- a/hudi-sync/hudi-sync-common/src/main/java/org/apache/hudi/sync/common/HoodieSyncConfig.java +++ b/hudi-sync/hudi-sync-common/src/main/java/org/apache/hudi/sync/common/HoodieSyncConfig.java @@ -96,8 +96,13 @@ public class HoodieSyncConfig extends HoodieConfig { .key("hoodie.datasource.hive_sync.partition_extractor_class") .defaultValue("org.apache.hudi.hive.MultiPartKeysValueExtractor") .withInferFunction(cfg -> { - Option partitionFieldsOpt = Option.ofNullable(cfg.getString(HoodieTableConfig.PARTITION_FIELDS)) - .or(() -> Option.ofNullable(cfg.getString(KeyGeneratorOptions.PARTITIONPATH_FIELD_NAME))); + Option partitionFieldsOpt; + if (StringUtils.nonEmpty(cfg.getString(META_SYNC_PARTITION_FIELDS))) { + partitionFieldsOpt = Option.ofNullable(cfg.getString(META_SYNC_PARTITION_FIELDS)); + } else { + partitionFieldsOpt = Option.ofNullable(cfg.getString(HoodieTableConfig.PARTITION_FIELDS)) + .or(() -> Option.ofNullable(cfg.getString(KeyGeneratorOptions.PARTITIONPATH_FIELD_NAME))); + } if (!partitionFieldsOpt.isPresent()) { return Option.empty(); }