[HUDI-2987] Update all deprecated calls to new apis in HoodieRecordPayload (#4681)
This commit is contained in:
committed by
GitHub
parent
2fe7a3a41f
commit
ba4e732ba7
@@ -19,6 +19,7 @@
|
||||
package org.apache.hudi.hadoop.realtime;
|
||||
|
||||
import org.apache.hudi.common.model.HoodieAvroPayload;
|
||||
import org.apache.hudi.common.model.HoodiePayloadProps;
|
||||
import org.apache.hudi.common.table.HoodieTableMetaClient;
|
||||
import org.apache.hudi.common.table.log.LogReaderUtils;
|
||||
import org.apache.hudi.exception.HoodieIOException;
|
||||
@@ -39,6 +40,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -50,6 +52,7 @@ public abstract class AbstractRealtimeRecordReader {
|
||||
protected final RealtimeSplit split;
|
||||
protected final JobConf jobConf;
|
||||
protected final boolean usesCustomPayload;
|
||||
protected Properties payloadProps = new Properties();
|
||||
// Schema handles
|
||||
private Schema readerSchema;
|
||||
private Schema writerSchema;
|
||||
@@ -62,7 +65,11 @@ public abstract class AbstractRealtimeRecordReader {
|
||||
LOG.info("columnIds ==> " + job.get(ColumnProjectionUtils.READ_COLUMN_IDS_CONF_STR));
|
||||
LOG.info("partitioningColumns ==> " + job.get(hive_metastoreConstants.META_TABLE_PARTITION_COLUMNS, ""));
|
||||
try {
|
||||
this.usesCustomPayload = usesCustomPayload();
|
||||
HoodieTableMetaClient metaClient = HoodieTableMetaClient.builder().setConf(jobConf).setBasePath(split.getBasePath()).build();
|
||||
if (metaClient.getTableConfig().getPreCombineField() != null) {
|
||||
this.payloadProps.setProperty(HoodiePayloadProps.PAYLOAD_ORDERING_FIELD_PROP_KEY, metaClient.getTableConfig().getPreCombineField());
|
||||
}
|
||||
this.usesCustomPayload = usesCustomPayload(metaClient);
|
||||
LOG.info("usesCustomPayload ==> " + this.usesCustomPayload);
|
||||
init();
|
||||
} catch (IOException e) {
|
||||
@@ -70,8 +77,7 @@ public abstract class AbstractRealtimeRecordReader {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean usesCustomPayload() {
|
||||
HoodieTableMetaClient metaClient = HoodieTableMetaClient.builder().setConf(jobConf).setBasePath(split.getBasePath()).build();
|
||||
private boolean usesCustomPayload(HoodieTableMetaClient metaClient) {
|
||||
return !(metaClient.getTableConfig().getPayloadClass().contains(HoodieAvroPayload.class.getName())
|
||||
|| metaClient.getTableConfig().getPayloadClass().contains("org.apache.hudi.OverwriteWithLatestAvroPayload"));
|
||||
}
|
||||
|
||||
@@ -97,9 +97,9 @@ class RealtimeCompactedRecordReader extends AbstractRealtimeRecordReader
|
||||
|
||||
private Option<GenericRecord> buildGenericRecordwithCustomPayload(HoodieRecord record) throws IOException {
|
||||
if (usesCustomPayload) {
|
||||
return ((HoodieAvroRecord) record).getData().getInsertValue(getWriterSchema());
|
||||
return ((HoodieAvroRecord) record).getData().getInsertValue(getWriterSchema(), payloadProps);
|
||||
} else {
|
||||
return ((HoodieAvroRecord) record).getData().getInsertValue(getReaderSchema());
|
||||
return ((HoodieAvroRecord) record).getData().getInsertValue(getReaderSchema(), payloadProps);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ class RealtimeUnmergedRecordReader extends AbstractRealtimeRecordReader
|
||||
.withBufferSize(this.jobConf.getInt(HoodieRealtimeConfig.MAX_DFS_STREAM_BUFFER_SIZE_PROP, HoodieRealtimeConfig.DEFAULT_MAX_DFS_STREAM_BUFFER_SIZE))
|
||||
.withLogRecordScannerCallback(record -> {
|
||||
// convert Hoodie log record to Hadoop AvroWritable and buffer
|
||||
GenericRecord rec = (GenericRecord) record.getData().getInsertValue(getReaderSchema()).get();
|
||||
GenericRecord rec = (GenericRecord) record.getData().getInsertValue(getReaderSchema(), payloadProps).get();
|
||||
ArrayWritable aWritable = (ArrayWritable) HoodieRealtimeRecordReaderUtils.avroToArrayWritable(rec, getHiveSchema());
|
||||
this.executor.getQueue().insertRecord(aWritable);
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user