break; case INT: result = ((IntObjectInspector) oi).get(o) != 0; break; case LONG: result = (int) ((LongObjectInspector) oi).get(o) != 0; break; case FLOAT: result = (int) ((FloatObjectInspector) oi).get(o) != 0; break; case DOUBLE: result = (int) ((DoubleObjectInspector) oi).get(o) != 0; break; case STRING: StringObjectInspector soi = (StringObjectInspector) oi; if (soi.preferWritable()) { Text t = soi.getPrimitiveWritableObject(o); result = parseBoolean(t); } else { String s = soi.getPrimitiveJavaObject(o); result = parseBoolean(s);
@Override public void serialize(Object o, ObjectInspector oi, TProtocol oprot) throws TException, SerDeException, NoSuchFieldException, IllegalAccessException { StringObjectInspector poi = (StringObjectInspector) oi; if (oprot instanceof WriteTextProtocol) { ((WriteTextProtocol) oprot).writeText(poi.getPrimitiveWritableObject(o)); } else { oprot.writeString(poi.getPrimitiveJavaObject(o)); } }
public boolean areEqual(Object o0, Object o1) { if (o0 == null && o1 == null) { return true; } else if (o0 == null || o1 == null) { return false; } switch (compareType) { case COMPARE_TEXT: return (soi0.getPrimitiveWritableObject(o0).equals( soi1.getPrimitiveWritableObject(o1))); case COMPARE_INT: return (ioi0.get(o0) == ioi1.get(o1)); case COMPARE_LONG: return (loi0.get(o0) == loi1.get(o1)); case COMPARE_BYTE: return (byoi0.get(o0) == byoi1.get(o1)); case COMPARE_BOOL: return (boi0.get(o0) == boi1.get(o1)); case COMPARE_STRING: return (soi0.getPrimitiveJavaObject(o0).equals( soi1.getPrimitiveJavaObject(o1))); default: return (ObjectInspectorUtils.compare( o0, oi0, o1, oi1) == 0); } } }
int numVectors = numBitVectorsFieldOI.get(partialValue); if (numVectors <= 0) { return; if (myagg.maxLength < maxLengthFieldOI.get(partialValue)) { myagg.maxLength = maxLengthFieldOI.get(partialValue); myagg.sumLength += sumLengthFieldOI.get(partialValue); String v = ndvFieldOI.getPrimitiveJavaObject(partialValue); NumDistinctValueEstimator o = new NumDistinctValueEstimator(v, myagg.numBitVectors); myagg.numDV.mergeEstimators(o);
private void unpackDoubleStats(ObjectInspector oi, Object o, String fName, ColumnStatisticsObj statsObj) throws UnsupportedDoubleException { if (fName.equals("countnulls")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getDoubleStats().setNumNulls(v); } else if (fName.equals("numdistinctvalues")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getDoubleStats().setNumDVs(v); } else if (fName.equals("max")) { double d = ((DoubleObjectInspector) oi).get(o); if (Double.isInfinite(d) || Double.isNaN(d)) { throw new UnsupportedDoubleException(); } statsObj.getStatsData().getDoubleStats().setHighValue(d); } else if (fName.equals("min")) { double d = ((DoubleObjectInspector) oi).get(o); if (Double.isInfinite(d) || Double.isNaN(d)) { throw new UnsupportedDoubleException(); } statsObj.getStatsData().getDoubleStats().setLowValue(d); } else if (fName.equals("ndvbitvector")) { PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi; String v = ((StringObjectInspector) poi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDoubleStats().setBitVectors(v);; } }
private void unpackLongStats(ObjectInspector oi, Object o, String fName, ColumnStatisticsObj statsObj) { if (fName.equals("countnulls")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getLongStats().setNumNulls(v); } else if (fName.equals("numdistinctvalues")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getLongStats().setNumDVs(v); } else if (fName.equals("max")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getLongStats().setHighValue(v); } else if (fName.equals("min")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getLongStats().setLowValue(v); } else if (fName.equals("ndvbitvector")) { PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi; String v = ((StringObjectInspector) poi).getPrimitiveJavaObject(o); statsObj.getStatsData().getLongStats().setBitVectors(v);; } }
@Override public void process(Object[] arguments) throws HiveException { String query = stringOI.getPrimitiveJavaObject(arguments[0]); int num = intOI.get(arguments[1]); PlanFragment fragment = createPlanFragment(query, num); TezWork tezWork = fragment.work; Schema schema = fragment.schema; try { for (InputSplit s : getSplits(jc, num, tezWork, schema)) { Object[] os = new Object[1]; bos.reset(); s.write(dos); byte[] frozen = bos.toByteArray(); os[0] = frozen; forward(os); } } catch (Exception e) { throw new HiveException(e); } }
@Override public Object getTransformedWritable(DeferredObject object) throws HiveException { String value = columnType.getPrimitiveJavaObject(object.get()); if(value != null) { String transformedValue = transformer.transform(value); if(transformedValue != null) { writable.set(transformedValue); return writable; } } return null; } }
/** * Set parameters for the current call */ void setParameters(DeferredObject[] arguments) throws HiveException { for (int i = 1; i < arguments.length; i++) { String name = ":" + i; if (argumentsOI[i] instanceof StringObjectInspector) { String value = ((StringObjectInspector)argumentsOI[i]).getPrimitiveJavaObject(arguments[i].get()); if (value != null) { exec.setVariable(name, value); } } else if (argumentsOI[i] instanceof IntObjectInspector) { Integer value = (Integer)((IntObjectInspector)argumentsOI[i]).getPrimitiveJavaObject(arguments[i].get()); if (value != null) { exec.setVariable(name, new Var(new Long(value))); } } else if (argumentsOI[i] instanceof LongObjectInspector) { Long value = (Long)((LongObjectInspector)argumentsOI[i]).getPrimitiveJavaObject(arguments[i].get()); if (value != null) { exec.setVariable(name, new Var(value)); } } else { exec.setVariableToNull(name); } } }
/** * Method to retrieve text values from the value object, which can be overridden * by subclasses. * * @param obj value * @return Text text value from obj */ Text getTextValue(Object obj) { return ((StringObjectInspector) inspector).getPrimitiveWritableObject(obj); }
soi0 = (StringObjectInspector) oi0; soi1 = (StringObjectInspector) oi1; if (soi0.preferWritable() || soi1.preferWritable()) { compareType = CompareType.COMPARE_TEXT; } else {
result.set(!soi0.getPrimitiveWritableObject(o0).equals( soi1.getPrimitiveWritableObject(o1))); break; case COMPARE_INT: result.set(ioi0.get(o0) != ioi1.get(o1)); break; case COMPARE_LONG: result.set(loi0.get(o0) != loi1.get(o1)); break; case COMPARE_BYTE: result.set(byoi0.get(o0) != byoi1.get(o1)); break; case COMPARE_BOOL: result.set(boi0.get(o0) != boi1.get(o1)); break; case COMPARE_STRING: result.set(!soi0.getPrimitiveJavaObject(o0).equals( soi1.getPrimitiveJavaObject(o1))); break; case SAME_TYPE:
@Override public void merge(AggregationBuffer agg, Object partial) throws HiveException { if (partial != null) { NumericStatsAgg myagg = (NumericStatsAgg) agg; if (myagg.numDV == null) { Object partialValue = soi.getStructFieldData(partial, numBitVectorsField); int numVectors = numBitVectorsFieldOI.get(partialValue); if (numVectors <= 0) { return; } myagg.initNDVEstimator(numVectors); } // Update min if min is lesser than the smallest value seen so far Object minValue = soi.getStructFieldData(partial, minField); myagg.updateMin(minValue, minFieldOI); // Update max if max is greater than the largest value seen so far Object maxValue = soi.getStructFieldData(partial, maxField); myagg.updateMax(maxValue, maxFieldOI); // Update the null counter Object countNull = soi.getStructFieldData(partial, countNullsField); myagg.countNulls += countNullsFieldOI.get(countNull); // Merge numDistinctValue Estimators Object numDistinct = soi.getStructFieldData(partial, ndvField); String v = ndvFieldOI.getPrimitiveJavaObject(numDistinct); NumDistinctValueEstimator o = new NumDistinctValueEstimator(v, myagg.numDV.getnumBitVectors()); myagg.numDV.mergeEstimators(o); } } }
private void unpackStringStats(ObjectInspector oi, Object o, String fName, ColumnStatisticsObj statsObj) { if (fName.equals("countnulls")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getStringStats().setNumNulls(v); } else if (fName.equals("numdistinctvalues")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getStringStats().setNumDVs(v); } else if (fName.equals("avglength")) { double d = ((DoubleObjectInspector) oi).get(o); statsObj.getStatsData().getStringStats().setAvgColLen(d); } else if (fName.equals("maxlength")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getStringStats().setMaxColLen(v); } else if (fName.equals("ndvbitvector")) { PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi; String v = ((StringObjectInspector) poi).getPrimitiveJavaObject(o); statsObj.getStatsData().getStringStats().setBitVectors(v);; } }
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 public void process(Object[] arguments) throws HiveException { String query = stringOI.getPrimitiveJavaObject(arguments[0]); int num = intOI.get(arguments[1]);
@Override public void write(Object value) { String v = inspector.getPrimitiveJavaObject(value); recordConsumer.addBinary(Binary.fromString(v)); } }
@Override public boolean equals(Object other) { if (!(other instanceof TextKeyWrapper)) { return false; } Object obj = ((TextKeyWrapper) other).key; Text t1; Text t2; if (isCopy) { t1 = soi_copy.getPrimitiveWritableObject(key); t2 = soi_copy.getPrimitiveWritableObject(obj); } else { t1 = soi_new.getPrimitiveWritableObject(key); t2 = soi_copy.getPrimitiveWritableObject(obj); } if (t1 == null && t2 == null) { return true; } else if (t1 == null || t2 == null) { return false; } else { return t1.equals(t2); } }
soi0 = (StringObjectInspector) arguments[0]; soi1 = (StringObjectInspector) arguments[1]; if (soi0.preferWritable() || soi1.preferWritable()) { compareType = CompareType.COMPARE_TEXT; } else {
result = (((BooleanObjectInspector) oi).get(o) ? 1 : 0); break; result = ((ByteObjectInspector) oi).get(o); break; result = ((IntObjectInspector) oi).get(o); break; result = (int) ((LongObjectInspector) oi).get(o); break; result = (int) ((FloatObjectInspector) oi).get(o); break; result = (int) ((DoubleObjectInspector) oi).get(o); break; if (soi.preferWritable()) { Text t = soi.getPrimitiveWritableObject(o); result = LazyInteger.parseInt(t.getBytes(), 0, t.getLength()); } else { String s = soi.getPrimitiveJavaObject(o); result = Integer.parseInt(s);