@Override public Object convert(Object input) { return PrimitiveObjectInspectorUtils.getString(input, inputOI); } }
@Override public boolean isDistanceGreater(Object v1, Object v2, int amt) { String s1 = PrimitiveObjectInspectorUtils.getString(v1, (PrimitiveObjectInspector) expressionDef.getOI()); String s2 = PrimitiveObjectInspectorUtils.getString(v2, (PrimitiveObjectInspector) expressionDef.getOI()); return s1 != null && s2 != null && s1.compareTo(s2) > 0; }
@Override public boolean isEqual(Object v1, Object v2) { String s1 = PrimitiveObjectInspectorUtils.getString(v1, (PrimitiveObjectInspector) expressionDef.getOI()); String s2 = PrimitiveObjectInspectorUtils.getString(v2, (PrimitiveObjectInspector) expressionDef.getOI()); return (s1 == null && s2 == null) || (s1 != null && s1.equals(s2)); } }
@Override public boolean isDistanceGreater(Object v1, Object v2, int amt) { String s1 = PrimitiveObjectInspectorUtils.getString(v1, (PrimitiveObjectInspector) expressionDef.getOI()); String s2 = PrimitiveObjectInspectorUtils.getString(v2, (PrimitiveObjectInspector) expressionDef.getOI()); return s1 != null && s2 != null && s1.compareTo(s2) > 0; }
@Override public boolean isEqual(Object v1, Object v2) { String s1 = PrimitiveObjectInspectorUtils.getString(v1, (PrimitiveObjectInspector) expressionDef.getOI()); String s2 = PrimitiveObjectInspectorUtils.getString(v2, (PrimitiveObjectInspector) expressionDef.getOI()); return (s1 == null && s2 == null) || (s1 != null && s1.equals(s2)); } }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { String value = PrimitiveObjectInspectorUtils.getString(arguments[0].get(), stringOI); if (value == null) { return null; } ByteBuffer encoded; if (encoder != null){ try { encoded = encoder.encode(CharBuffer.wrap(value)); } catch (CharacterCodingException e) { throw new HiveException(e); } } else { encoded = Charset.forName( PrimitiveObjectInspectorUtils.getString(arguments[1].get(), charsetOI)).encode(value); } result.setSize(encoded.limit()); encoded.get(result.getBytes(), 0, encoded.limit()); return result; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { String argString = PrimitiveObjectInspectorUtils.getString(arguments[1].get(), inputOI); if (argString == null) { return null; } try { return processor.evaluate(argString); } catch (Exception e) { throw new UDFArgumentTypeException(1, "Error parsing interval " + argString + " using:" + processor.getClass().getSimpleName()); } }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { String value = PrimitiveObjectInspectorUtils.getString(arguments[0].get(), stringOI); if (value == null) { return null; } ByteBuffer encoded; if (encoder != null){ try { encoded = encoder.encode(CharBuffer.wrap(value)); } catch (CharacterCodingException e) { throw new HiveException(e); } } else { encoded = Charset.forName( PrimitiveObjectInspectorUtils.getString(arguments[1].get(), charsetOI)).encode(value); } result.setSize(encoded.limit()); encoded.get(result.getBytes(), 0, encoded.limit()); return result; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { String argString = PrimitiveObjectInspectorUtils.getString(arguments[1].get(), inputOI); if (argString == null) { return null; } try { return processor.evaluate(argString); } catch (Exception e) { throw new UDFArgumentTypeException(1, "Error parsing interval " + argString + " using:" + processor.getClass().getSimpleName()); } }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object value = bytesOI.getPrimitiveJavaObject(arguments[0].get()); if (value == null) { return null; } ByteBuffer wrappedBytes = ByteBuffer.wrap((byte[])value); CharBuffer decoded; if (decoder != null){ try { decoded = decoder.decode(wrappedBytes); } catch (CharacterCodingException e) { throw new HiveException(e); } } else { String charSetName = PrimitiveObjectInspectorUtils.getString(arguments[1].get(), charsetOI); decoded = Charset.forName(charSetName).decode(wrappedBytes); } return decoded.toString(); }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object value = bytesOI.getPrimitiveJavaObject(arguments[0].get()); if (value == null) { return null; } ByteBuffer wrappedBytes = ByteBuffer.wrap((byte[])value); CharBuffer decoded; if (decoder != null){ try { decoded = decoder.decode(wrappedBytes); } catch (CharacterCodingException e) { throw new HiveException(e); } } else { String charSetName = PrimitiveObjectInspectorUtils.getString(arguments[1].get(), charsetOI); decoded = Charset.forName(charSetName).decode(wrappedBytes); } return decoded.toString(); }
@Override public void evaluate(VectorizedRowBatch batch) throws HiveException { if (!initialized) { Object lVal = leftDynamicValue.getValue(); Object rVal = rightDynamicValue.getValue(); if (lVal == null || rVal == null) { isLeftOrRightNull = true; } else { byte[] min = (PrimitiveObjectInspectorUtils.getString( lVal, leftDynamicValue.getObjectInspector()).getBytes()); setLeftValue(min); byte[] max = (PrimitiveObjectInspectorUtils.getString( rVal, rightDynamicValue.getObjectInspector()).getBytes()); setRightValue(max); } initialized = true; } // Special case for dynamic values - min/max can be null if (isLeftOrRightNull) { // Entire batch is filtered out batch.size = 0; } super.evaluate(batch); } }
public static HiveIntervalYearMonth getHiveIntervalYearMonth(Object o, PrimitiveObjectInspector oi) { if (o == null) { return null; } HiveIntervalYearMonth result = null; switch (oi.getPrimitiveCategory()) { case VOID: result = null; break; case STRING: case CHAR: case VARCHAR: { try { String val = getString(o, oi).trim(); result = HiveIntervalYearMonth.valueOf(val); } catch (IllegalArgumentException e) { result = null; } break; } case INTERVAL_YEAR_MONTH: result = ((HiveIntervalYearMonthObjectInspector) oi).getPrimitiveJavaObject(o); break; default: throw new RuntimeException("Cannot convert to IntervalYearMonth from: " + oi.getTypeName()); } return result; }
public static HiveIntervalDayTime getHiveIntervalDayTime(Object o, PrimitiveObjectInspector oi) { if (o == null) { return null; } HiveIntervalDayTime result = null; switch (oi.getPrimitiveCategory()) { case VOID: result = null; break; case STRING: case CHAR: case VARCHAR: { try { String val = getString(o, oi).trim(); result = HiveIntervalDayTime.valueOf(val); } catch (IllegalArgumentException e) { result = null; } break; } case INTERVAL_DAY_TIME: result = ((HiveIntervalDayTimeObjectInspector) oi).getPrimitiveJavaObject(o); break; default: throw new RuntimeException("Cannot convert to IntervalDayTime from: " + oi.getTypeName()); } return result; }
@Override public void evaluate(VectorizedRowBatch batch) { if (!initialized) { Object lVal = leftDynamicValue.getValue(); Object rVal = rightDynamicValue.getValue(); if (lVal == null || rVal == null) { isLeftOrRightNull = true; } else { byte[] min = (PrimitiveObjectInspectorUtils.getString( lVal, leftDynamicValue.getObjectInspector()).getBytes()); setLeftValue(min); byte[] max = (PrimitiveObjectInspectorUtils.getString( rVal, rightDynamicValue.getObjectInspector()).getBytes()); setRightValue(max); } initialized = true; } // Special case for dynamic values - min/max can be null if (isLeftOrRightNull) { // Entire batch is filtered out batch.size = 0; } super.evaluate(batch); } }
public static HiveChar getHiveChar(Object o, PrimitiveObjectInspector oi) { if (o == null) { return null; } HiveChar result = null; switch (oi.getPrimitiveCategory()) { case CHAR: result = ((HiveCharObjectInspector) oi).getPrimitiveJavaObject(o); break; default: // No char length available, copy whole string value here. result = new HiveChar(); result.setValue(getString(o, oi)); break; } return result; }
public static HiveVarchar getHiveVarchar(Object o, PrimitiveObjectInspector oi) { if (o == null) { return null; } HiveVarchar result = null; switch (oi.getPrimitiveCategory()) { case VARCHAR: result = ((HiveVarcharObjectInspector)oi).getPrimitiveJavaObject(o); break; default: // Is there a way to provide char length here? // It might actually be ok as long as there is an object inspector (with char length) // receiving this value. result = new HiveVarchar(); result.setValue(getString(o, oi)); break; } return result; }
@Override public void iterate(AggregationBuffer agg, Object[] parameters) throws HiveException { NumericStatsAgg myagg = (NumericStatsAgg) agg; if (myagg.numDV == null) { String func = null; int numVectors = 0; // func may be null when GBY op is closing. // see mvn test -Dtest=TestMiniTezCliDriver -Dqfile=explainuser_3.q // original behavior is to create FMSketch func = parameters[1] == null ? "fm" : PrimitiveObjectInspectorUtils.getString( parameters[1], funcOI); if (parameters.length == 3) { numVectors = parameters[2] == null ? 0 : PrimitiveObjectInspectorUtils.getInt( parameters[2], numVectorsOI); if (numVectors > MAX_BIT_VECTORS) { throw new HiveException("The maximum allowed value for number of bit vectors " + " is " + MAX_BIT_VECTORS + ", but was passed " + numVectors + " bit vectors"); } } myagg.initNDVEstimator(func, numVectors); } // Update null counter if a null value is seen if (parameters[0] == null) { myagg.countNulls++; } else { myagg.update(parameters[0], inputOI); } }
String s = getString(o, oi).trim(); return TimestampTZUtil.parseOrNull(trimNanoTimestamp(s), timeZone);