@Override protected Object _evaluate(Object row, int version) throws HiveException { if (isConstant) { // The output of this UDF is constant, so don't even bother evaluating. return ((ConstantObjectInspector) outputOI).getWritableConstantValue(); } rowObject = row; for (GenericUDF.DeferredObject deferredObject : childrenNeedingPrepare) { deferredObject.prepare(version); } return genericUDF.evaluate(deferredChildren); }
private void runAndVerify(String str, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj = new DeferredJavaObject(new Text(str)); DeferredObject[] args = { valueObj }; Text output = (Text) udf.evaluate(args); assertEquals("trim() test ", expResult, output.toString()); } }
private void runAndVerifyConst(String str, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj0 = new DeferredJavaObject(str != null ? new Text(str) : null); DeferredObject[] args = { valueObj0 }; Text output = (Text) udf.evaluate(args); assertEquals("substring_index() test ", expResult, output != null ? output.toString() : null); } }
private void runAndVerify(String str, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj0 = new DeferredJavaObject(str != null ? new Text(str) : null); DeferredObject[] args = { valueObj0 }; Text output = (Text) udf.evaluate(args); assertEquals("last_day() test ", expResult, output != null ? output.toString() : null); }
private void runAndVerify(String str, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj = new DeferredJavaObject(new Text(str)); DeferredObject[] args = { valueObj }; Text output = (Text) udf.evaluate(args); assertEquals("ltrim() test ", expResult, output.toString()); } }
private void runAndVerify(String str, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj = new DeferredJavaObject(new Text(str)); DeferredObject[] args = { valueObj }; Text output = (Text) udf.evaluate(args); assertEquals("ltrim() test ", expResult, output.toString()); } }
private void runAndVerify(String str, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj = new DeferredJavaObject(new Text(str)); DeferredObject[] args = { valueObj }; Text output = (Text) udf.evaluate(args); assertEquals("initcap() test ", expResult, output.toString()); } }
private void runAndVerify(String date, String dayOfWeek, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj0 = new DeferredJavaObject(date != null ? new Text(date) : null); DeferredObject valueObj1 = new DeferredJavaObject(dayOfWeek != null ? new Text(dayOfWeek) : null); DeferredObject[] args = { valueObj0, valueObj1 }; Text output = (Text) udf.evaluate(args); assertEquals("next_day() test ", expResult, output != null ? output.toString() : null); } }
private void runAndVerifyStr(String str, Text fmtText, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj0 = new DeferredJavaObject(str != null ? new Text(str) : null); DeferredObject valueObj1 = new DeferredJavaObject(fmtText); DeferredObject[] args = { valueObj0, valueObj1 }; Text output = (Text) udf.evaluate(args); assertEquals("date_format() test ", expResult, output != null ? output.toString() : null); }
private void runAndVerify(String str, int months, Text dateFormat, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj0 = new DeferredJavaObject(new Text(str)); DeferredObject valueObj1 = new DeferredJavaObject(new IntWritable(months)); DeferredObject valueObj2 = new DeferredJavaObject(dateFormat); DeferredObject[] args = {valueObj0, valueObj1, valueObj2}; Text output = (Text) udf.evaluate(args); assertEquals("add_months() test with time part", expResult, output != null ? output.toString() : null); }
private void runAndVerify(Integer in, Long expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj0 = new DeferredJavaObject(in != null ? new IntWritable(in) : null); DeferredObject[] args = { valueObj0 }; LongWritable output = (LongWritable) udf.evaluate(args); if (expResult == null) { assertNull("factorial() test ", output); } else { assertNotNull("factorial() test ", output); assertEquals("factorial() test ", expResult.longValue(), output.get()); } } }
@Test public void evaluate_SingleArgumentOnly() throws HiveException { when(deferredObject.get()).thenReturn(value); when(valueConverter.convert(value, unionOI)).thenReturn(converted); underTest.initialize(new ObjectInspector[] { unionOI }); Object result = underTest.evaluate(new DeferredObject[] { deferredObject }); assertThat(result, is(converted)); }
public static void runAndVerify(GenericUDF udf, Object arg1, Object arg2, Object expected) throws HiveException { DeferredObject[] args = { new DeferredJavaObject(arg1), new DeferredJavaObject(arg2) }; Object result = udf.evaluate(args); if (expected == null) { assertNull(result); } else { assertEquals(expected.toString(), result.toString()); } }
private void runAndVerifyTs(String str, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj0 = new DeferredJavaObject(str != null ? new TimestampWritableV2( Timestamp.valueOf(str)) : null); DeferredObject[] args = { valueObj0 }; Text output = (Text) udf.evaluate(args); assertEquals("last_day() test ", expResult, output != null ? output.toString() : null); } }
private void runAndVerify(Object[] v, Object expResult, GenericUDF udf) throws HiveException { DeferredObject[] args = new DeferredObject[v.length]; for (int i = 0; i < v.length; i++) { args[i] = new DeferredJavaObject(getWritable(v[i])); } Object output = udf.evaluate(args); output = parseOutput(output); assertEquals("greatest() test ", expResult, output != null ? output : null); }
private void runAndVerifyDt(String str, Integer expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj0 = new DeferredJavaObject(str != null ? new DateWritableV2( Date.valueOf(str)) : null); DeferredObject[] args = { valueObj0 }; IntWritable output = (IntWritable) udf.evaluate(args); if (expResult == null) { assertNull(output); } else { assertNotNull(output); assertEquals("quarter() test ", expResult.intValue(), output.get()); } }
private void runAndVerify(Object[] v, Object expResult, GenericUDF udf) throws HiveException { DeferredObject[] args = new DeferredObject[v.length]; for (int i = 0; i < v.length; i++) { args[i] = new DeferredJavaObject(getWritable(v[i])); } Object output = udf.evaluate(args); output = parseOutput(output); assertEquals("greatest() test ", expResult, output != null ? output : null); }
private void runAndVerifyDate(String str, Text fmtText, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj0 = new DeferredJavaObject(str != null ? new DateWritableV2( Date.valueOf(str)) : null); DeferredObject valueObj1 = new DeferredJavaObject(fmtText); DeferredObject[] args = { valueObj0, valueObj1 }; Text output = (Text) udf.evaluate(args); assertEquals("date_format() test ", expResult, output != null ? output.toString() : null); }
private void runAndVerifyTs(String str, Text fmtText, String expResult, GenericUDF udf) throws HiveException { DeferredObject valueObj0 = new DeferredJavaObject(str != null ? new TimestampWritableV2( Timestamp.valueOf(str)) : null); DeferredObject valueObj1 = new DeferredJavaObject(fmtText); DeferredObject[] args = { valueObj0, valueObj1 }; Text output = (Text) udf.evaluate(args); assertEquals("date_format() test ", expResult, output != null ? output.toString() : null); } }
private void runDecimal(double v, IntWritable scale, Double expV, GenericUDF udf) throws HiveException { HiveDecimal hd = HiveDecimal.create(BigDecimal.valueOf(v)); DeferredObject valueObj0 = new DeferredJavaObject(new HiveDecimalWritable(hd)); DeferredObject valueObj1 = new DeferredJavaObject(scale); DeferredObject[] args = { valueObj0, valueObj1 }; HiveDecimalWritable output = (HiveDecimalWritable) udf.evaluate(args); Assert.assertEquals("bround() test ", expV.doubleValue(), output.getHiveDecimal().doubleValue(), 0.00001); } }