@Override protected void updateMax(Object maxValue, HiveDecimalObjectInspector maxFieldOI) { if ((maxValue != null) && (max == null || max.compareTo(maxFieldOI.getPrimitiveJavaObject(maxValue)) < 0)) { max = maxFieldOI.getPrimitiveJavaObject(maxValue); } } };
@Override protected void updateMin(Object minValue, HiveDecimalObjectInspector minFieldOI) { if ((minValue != null) && (min == null || min.compareTo(minFieldOI.getPrimitiveJavaObject(minValue)) > 0)) { min = minFieldOI.getPrimitiveJavaObject(minValue); } }
@Override protected void updateMin(Object minValue, HiveDecimalObjectInspector minFieldOI) { if ((minValue != null) && (min == null || min.compareTo(minFieldOI.getPrimitiveJavaObject(minValue)) > 0)) { min = minFieldOI.getPrimitiveJavaObject(minValue); } }
@Override protected void updateMax(Object maxValue, HiveDecimalObjectInspector maxFieldOI) { if ((maxValue != null) && (max == null || max.compareTo(maxFieldOI.getPrimitiveJavaObject(maxValue)) < 0)) { max = maxFieldOI.getPrimitiveJavaObject(maxValue); } } };
@Override protected void doMerge(AverageAggregationBuffer<HiveDecimal> aggregation, Long partialCount, ObjectInspector sumFieldOI, Object partialSum) { HiveDecimal value = ((HiveDecimalObjectInspector)sumFieldOI).getPrimitiveJavaObject(partialSum); if (value == null) { aggregation.sum = null; } aggregation.count += partialCount; if (aggregation.sum != null) { aggregation.sum = aggregation.sum.add(value); } }
@Override protected void doMerge(AverageAggregationBuffer<HiveDecimal> aggregation, Long partialCount, ObjectInspector sumFieldOI, Object partialSum) { HiveDecimal value = ((HiveDecimalObjectInspector)sumFieldOI).getPrimitiveJavaObject(partialSum); if (value == null) { aggregation.sum = null; } aggregation.count += partialCount; if (aggregation.sum != null) { aggregation.sum = aggregation.sum.add(value); } }
@Override public void write(Object value) { HiveDecimal vDecimal = inspector.getPrimitiveJavaObject(value); DecimalTypeInfo decTypeInfo = (DecimalTypeInfo)inspector.getTypeInfo(); recordConsumer.addBinary(decimalToBinary(vDecimal, decTypeInfo)); }
@Override public void write(Object value) { HiveDecimal vDecimal = inspector.getPrimitiveJavaObject(value); DecimalTypeInfo decTypeInfo = (DecimalTypeInfo)inspector.getTypeInfo(); recordConsumer.addBinary(decimalToBinary(vDecimal, decTypeInfo)); }
@Override public void setSafeValue(ObjectInspector oi, Object hiveFieldValue, ValueVector outputVV, int outputIndex) { ((NullableVarDecimalVector) outputVV).getMutator() .setSafe( outputIndex, ((HiveDecimalObjectInspector) oi) .getPrimitiveJavaObject(hiveFieldValue).bigDecimalValue() .setScale(outputVV.getField().getScale(), RoundingMode.HALF_UP)); } }
/** * Get the byte value out of a primitive object. Note that * NullPointerException will be thrown if o is null. Note that * NumberFormatException will be thrown if o is not a valid number. */ public static byte getByte(Object o, PrimitiveObjectInspector oi) { byte result; switch (oi.getPrimitiveCategory()) { case DECIMAL: { HiveDecimal dec = ((HiveDecimalObjectInspector) oi) .getPrimitiveJavaObject(o); if (!dec.isByte()) { throw new NumberFormatException(); } result = dec.byteValue(); } break; default: // For all other data types, use int conversion. At some point, we should have all // conversions make sure the value fits. return (byte) getInt(o, oi); } return result; }
/** * Get the short value out of a primitive object. Note that * NullPointerException will be thrown if o is null. Note that * NumberFormatException will be thrown if o is not a valid number. */ public static short getShort(Object o, PrimitiveObjectInspector oi) { short result; switch (oi.getPrimitiveCategory()) { case DECIMAL: { HiveDecimal dec = ((HiveDecimalObjectInspector) oi) .getPrimitiveJavaObject(o); if (!dec.isShort()) { throw new NumberFormatException(); } result = dec.shortValue(); } break; default: // For all other data types, use int conversion. At some point, we should have all // conversions make sure the value fits. return (short) getInt(o, oi); } return result; }
case DECIMAL: xDecimalValue = ((HiveDecimalObjectInspector) argumentOIs[0]) .getPrimitiveJavaObject(arg0); resultText.set(numberFormat.format(xDecimalValue.bigDecimalValue())); break;
private static void unpackDecimalStats(ObjectInspector oi, Object o, String fName, ColumnStatisticsObj statsObj) { if (fName.equals("countnulls")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getDecimalStats().setNumNulls(v); } else if (fName.equals("numdistinctvalues")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getDecimalStats().setNumDVs(v); } else if (fName.equals("max")) { HiveDecimal d = ((HiveDecimalObjectInspector) oi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setHighValue(convertToThriftDecimal(d)); } else if (fName.equals("min")) { HiveDecimal d = ((HiveDecimalObjectInspector) oi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setLowValue(convertToThriftDecimal(d)); } else if (fName.equals("ndvbitvector")) { PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi; byte[] buf = ((BinaryObjectInspector) poi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setBitVectors(buf); ; } }
private void unpackDecimalStats(ObjectInspector oi, Object o, String fName, ColumnStatisticsObj statsObj) { if (fName.equals("countnulls")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getDecimalStats().setNumNulls(v); } else if (fName.equals("numdistinctvalues")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getDecimalStats().setNumDVs(v); } else if (fName.equals("max")) { HiveDecimal d = ((HiveDecimalObjectInspector) oi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setHighValue(convertToThriftDecimal(d)); } else if (fName.equals("min")) { HiveDecimal d = ((HiveDecimalObjectInspector) oi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setLowValue(convertToThriftDecimal(d)); } else if (fName.equals("ndvbitvector")) { PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi; String v = ((StringObjectInspector) poi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setBitVectors(v);; } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { HiveDecimal decimal = ((HiveDecimalObjectInspector) inspector).getPrimitiveJavaObject(obj); if (decimal == null) { return; } SerializationUtils.writeBigInteger(valueStream, decimal.unscaledValue()); scaleStream.write(decimal.scale()); indexStatistics.updateDecimal(decimal); if (createBloomFilter) { bloomFilter.addString(decimal.toString()); } } }
case DECIMAL: result = ((HiveDecimalObjectInspector) oi) .getPrimitiveJavaObject(o).doubleValue(); break; case DATE: // unsupported conversion
.getPrimitiveJavaObject(o); if (!dec.isLong()) { throw new NumberFormatException();
break; case DECIMAL: result = ((HiveDecimalObjectInspector) oi).getPrimitiveJavaObject(o); break; case DATE: // unsupported conversion
case DECIMAL: result = TimestampUtils.decimalToTimestamp( ((HiveDecimalObjectInspector) inputOI).getPrimitiveJavaObject(o)); break; case STRING:
case DECIMAL: result = HiveDecimal.ZERO.compareTo( ((HiveDecimalObjectInspector) oi).getPrimitiveJavaObject(o)) != 0; break; case DATE: // unsupported conversion