@Override public Object convert(Object value, BadRecordLogHolder logHolder) throws RuntimeException { try { String parsedValue = null; String dimensionValue = (String) value; if (dimensionValue == null || dimensionValue.equals(nullFormat)) { parsedValue = CarbonCommonConstants.MEMBER_DEFAULT_VAL; } else { parsedValue = DataTypeUtil.parseValue(dimensionValue, carbonDimension); } if (null == parsedValue) { if ((dimensionValue.length() > 0) || (dimensionValue.length() == 0 && isEmptyBadRecord)) { String message = logHolder.getColumnMessageMap().get(carbonDimension.getColName()); if (null == message) { message = CarbonDataProcessorUtil .prepareFailureReason(carbonDimension.getColName(), carbonDimension.getDataType()); logHolder.getColumnMessageMap().put(carbonDimension.getColName(), message); } logHolder.setReason(message); } return CarbonCommonConstants.MEMBER_DEFAULT_VAL_SURROGATE_KEY; } else { return dictionaryGenerator.getOrGenerateKey(parsedValue); } } catch (DictionaryGenerationException e) { throw new RuntimeException(e); } }
@Override public void writeByteArray(Object input, DataOutputStream dataOutputStream, BadRecordLogHolder logHolder) throws IOException, DictionaryGenerationException { String parsedValue = input == null ? null : DataTypeUtil.parseValue(input.toString(), carbonDimension); String message = logHolder.getColumnMessageMap().get(carbonDimension.getColName()); if (this.isDictionary) {