WritableColumnVector read Dict
sql/core/src/main/java/org/apache/spark/sql/execution/vectorized/WritableColumnVector.java
@Override
public UTF8String getUTF8String(int rowId) {
if (isNullAt(rowId)) return null;
if (dictionary == null) {
return arrayData().getBytesAsUTF8String(getArrayOffset(rowId), getArrayLength(rowId));
} else {
byte[] bytes = dictionary.decodeToBinary(dictionaryIds.getDictId(rowId));
return UTF8String.fromBytes(bytes);
}
}
dictionaryIds 为对应的索引
/**
* Reusable column for ids of dictionary.
*/
protected WritableColumnVector dictionaryIds;