@Override
public Object deserialize(Writable writable) throws SerDeException {
// Different segments could contain different schemas.
// Especially the column orders could be different.
// Here we re-map the column names to the real column ids.
SchemaWritable reader = (SchemaWritable) writable;
if (this.projectCols != reader.columns) {
// Don't have to do it every time, only when schema is changed.
mapColIndex(reader.columns);
projectCols = reader.columns;
}
if (!isMapNeeded) {
serdeSize = columnNames.size();
return reader;
} else {
Writable[] projectWritables = reader.get();
Writable[] writables = new Writable[columnNames.size()];
for (int i = 0; i < validColIndexes.length; i++) {
int colIndex = validColIndexes[i];
int mapColId = validColMapIds[i];
writables[colIndex] = projectWritables[mapColId];
}
serdeSize = validColIndexes.length;
return new ArrayWritable(Writable.class, writables);
}
}
IndexRSerde.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:indexr
作者:
评论列表
文章目录