Skip to content

Commit b99eb59

Browse files
committed
Add PARQUET_FIELD_ID_WRITE_ENABLED to Hudi
1 parent 10558b6 commit b99eb59

3 files changed

Lines changed: 16 additions & 0 deletions

File tree

hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieStorageConfig.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,12 @@ public class HoodieStorageConfig extends HoodieConfig {
130130
.defaultValue("TIMESTAMP_MICROS")
131131
.withDocumentation("Sets spark.sql.parquet.outputTimestampType. Parquet timestamp type to use when Spark writes data to Parquet files.");
132132

133+
public static final ConfigProperty<String> PARQUET_FIELD_ID_WRITE_ENABLED = ConfigProperty
134+
.key("hoodie.parquet.fieldId.write.enabled")
135+
.defaultValue("true")
136+
.withDocumentation("Sets spark.sql.parquet.fieldId.write.enabled. "
137+
+ "If enabled, Spark will write out parquet native field ids that are stored inside StructField's metadata as parquet.field.id to parquet files.");
138+
133139
public static final ConfigProperty<String> HFILE_COMPRESSION_ALGORITHM_NAME = ConfigProperty
134140
.key("hoodie.hfile.compression.algorithm")
135141
.defaultValue("GZ")
@@ -337,6 +343,11 @@ public Builder parquetOutputTimestampType(String parquetOutputTimestampType) {
337343
return this;
338344
}
339345

346+
public Builder parquetFieldIdWrite(String parquetFieldIdWrite) {
347+
storageConfig.setValue(PARQUET_FIELD_ID_WRITE_ENABLED, parquetFieldIdWrite);
348+
return this;
349+
}
350+
340351
public Builder hfileCompressionAlgorithm(String hfileCompressionAlgorithm) {
341352
storageConfig.setValue(HFILE_COMPRESSION_ALGORITHM_NAME, hfileCompressionAlgorithm);
342353
return this;

hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1682,6 +1682,10 @@ public String parquetOutputTimestampType() {
16821682
return getString(HoodieStorageConfig.PARQUET_OUTPUT_TIMESTAMP_TYPE);
16831683
}
16841684

1685+
public String parquetFieldIdWriteEnabled() {
1686+
return getString(HoodieStorageConfig.PARQUET_FIELD_ID_WRITE_ENABLED);
1687+
}
1688+
16851689
public Option<HoodieLogBlock.HoodieLogBlockType> getLogDataBlockFormat() {
16861690
return Option.ofNullable(getString(HoodieStorageConfig.LOGFILE_DATA_BLOCK_FORMAT))
16871691
.map(HoodieLogBlock.HoodieLogBlockType::fromId);

hudi-client/hudi-spark-client/src/main/java/org/apache/hudi/io/storage/row/HoodieRowParquetWriteSupport.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public HoodieRowParquetWriteSupport(Configuration conf, StructType structType, B
4848
Configuration hadoopConf = new Configuration(conf);
4949
hadoopConf.set("spark.sql.parquet.writeLegacyFormat", writeConfig.parquetWriteLegacyFormatEnabled());
5050
hadoopConf.set("spark.sql.parquet.outputTimestampType", writeConfig.parquetOutputTimestampType());
51+
hadoopConf.set("spark.sql.parquet.fieldId.write.enabled", writeConfig.parquetFieldIdWriteEnabled());
5152
this.hadoopConf = hadoopConf;
5253
setSchema(structType, hadoopConf);
5354
this.bloomFilter = bloomFilter;

0 commit comments

Comments
 (0)