public TimestampWritable evaluate(TimestampWritable t) { if (t == null) { return null; } long newTimestamp = granularity.truncate(t.getTimestamp().getTime()); result.setTime(newTimestamp); return result; }
public IntWritable evaluate(TimestampWritable t) { if (t == null) { return null; } calendar.setTime(t.getTimestamp()); result.set(1 + calendar.get(Calendar.MONTH)); return result; }
private void compareToUDFUnixTimeStampDate(long t, long y) { TimestampWritable tsw = toTimestampWritable(t); LongWritable res = getLongWritable(tsw); if (res.get() != y) { System.out.printf( "%d vs %d for %d, %d\n", res.get(), y, t, tsw.getTimestamp().getTime() / 1000); } Assert.assertEquals(res.get(), y); }
public void set(TimestampWritable t) { if (t.bytesEmpty) { set(t.getTimestamp()); return; } if (t.currentBytes == t.externalBytes) { set(t.currentBytes, t.offset); } else { set(t.currentBytes, 0); } }
@Test public void testTimestampPlusIntervalDayTime() throws Exception { GenericUDFOPPlus udf = new GenericUDFOPPlus(); TimestampWritable left = new TimestampWritable(Timestamp.valueOf("2001-01-01 00:00:00")); HiveIntervalDayTimeWritable right = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("1 2:3:4.567")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableTimestampObjectInspector, PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.timestampTypeInfo, oi.getTypeInfo()); TimestampWritable res = (TimestampWritable) udf.evaluate(args); Assert.assertEquals(Timestamp.valueOf("2001-01-02 2:3:4.567"), res.getTimestamp()); }
@Test public void testTimestampPlusIntervalYearMonth() throws Exception { GenericUDFOPPlus udf = new GenericUDFOPPlus(); TimestampWritable left = new TimestampWritable(Timestamp.valueOf("2001-11-15 01:02:03.123456789")); HiveIntervalYearMonthWritable right = new HiveIntervalYearMonthWritable(HiveIntervalYearMonth.valueOf("2-2")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableTimestampObjectInspector, PrimitiveObjectInspectorFactory.writableHiveIntervalYearMonthObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.timestampTypeInfo, oi.getTypeInfo()); TimestampWritable res = (TimestampWritable) udf.evaluate(args); Assert.assertEquals(Timestamp.valueOf("2004-01-15 01:02:03.123456789"), res.getTimestamp()); }