@Override protected Object parseDate(Long value, boolean richDate) { return (richDate ? new TimestampWritable(new Timestamp(value)) : processLong(value)); }
@Override public void copyToNewInstance(Object newInstance) throws UDFArgumentException { super.copyToNewInstance(newInstance); // Need to preserve currentTimestamp GenericUDFCurrentTimestamp other = (GenericUDFCurrentTimestamp) newInstance; if (this.currentTimestamp != null) { other.currentTimestamp = new TimestampWritable(this.currentTimestamp); } } }
public UDFDateFloor(String granularity) { this.granularity = QueryGranularity.fromString(granularity); this.result = new TimestampWritable(); }
@Override public TimestampWritable getPrimitiveWritableObject(Object o) { if (o == null) { return null; } final NullableTimeStampHolder h = (NullableTimeStampHolder) o; org.joda.time.LocalDateTime dateTime = new org.joda.time.LocalDateTime(h.value, org.joda.time.DateTimeZone.UTC); // use "toDate()" to get java.util.Date object with exactly the same fields as this Joda date-time. // See more in Javadoc for "LocalDateTime#toDate()" return new TimestampWritable(new java.sql.Timestamp(dateTime.toDate().getTime())); }
@Override public TimestampWritable getPrimitiveWritableObject(Object o) { final TimeStampHolder h = (TimeStampHolder) o; org.joda.time.LocalDateTime dateTime = new org.joda.time.LocalDateTime(h.value, org.joda.time.DateTimeZone.UTC); // use "toDate()" to get java.util.Date object with exactly the same fields as this Joda date-time. // See more in Javadoc for "LocalDateTime#toDate()" return new TimestampWritable(new java.sql.Timestamp(dateTime.toDate().getTime())); }
@Override protected Object parseDate(String value, boolean richDate) { return (richDate ? new TimestampWritable(new Timestamp(DatatypeConverter.parseDateTime(value).getTimeInMillis())) : parseString(value)); }
static TimestampWritable nextTimestamp(ColumnVector vector, int row, Object previous) { if (vector.isRepeating) { row = 0; } if (vector.noNulls || !vector.isNull[row]) { TimestampWritable result; if (previous == null || previous.getClass() != TimestampWritable.class) { result = new TimestampWritable(); } else { result = (TimestampWritable) previous; } TimestampColumnVector tcv = (TimestampColumnVector) vector; result.setInternal(tcv.time[row], tcv.nanos[row]); return result; } else { return null; } }
public static TimestampWritable nextTimestamp(ColumnVector vector, int row, Object previous) { if (vector.isRepeating) { row = 0; } if (vector.noNulls || !vector.isNull[row]) { TimestampWritable result; if (previous == null || previous.getClass() != TimestampWritable.class) { result = new TimestampWritable(); } else { result = (TimestampWritable) previous; } TimestampColumnVector tcv = (TimestampColumnVector) vector; result.setInternal(tcv.time[row], tcv.nanos[row]); return result; } else { return null; } }
@Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { if (arguments.length != 0) { throw new UDFArgumentLengthException( "The function CURRENT_TIMESTAMP does not take any arguments, but found " + arguments.length); } if (currentTimestamp == null) { currentTimestamp = new TimestampWritable(SessionState.get().getQueryCurrentTimestamp()); } return PrimitiveObjectInspectorFactory.writableTimestampObjectInspector; }
@Test public void testTimestamp() { assertTrue(hiveTypeToJson( new MyHiveType(new TimestampWritable(new Timestamp(1407239910771l)), timestampTypeInfo)).startsWith( "\"2014-08-0")); }
return new LongWritable(0); case TIMESTAMP: return new TimestampWritable(new Timestamp(0)); case DATE: return new DateWritable(new Date(0));
private Object parseAsPrimitive(JsonNode value, TypeInfo typeInfo) throws SerDeException { switch (TypeInfoFactory.getPrimitiveTypeInfo(typeInfo.getTypeName()).getPrimitiveCategory()) { case TIMESTAMP: TimestampWritable timestampWritable = new TimestampWritable(); timestampWritable.setTime(TS_PARSER.get().parseMillis(value.textValue())); return timestampWritable;
@Override public Object writeValue(ColumnVector column, int row) throws HiveException { TimestampColumnVector dcv = (TimestampColumnVector) column; TimestampWritable timestampWritable = (TimestampWritable) dcv.getScratchWritable(); if (timestampWritable == null) { timestampWritable = new TimestampWritable(); dcv.setScratchWritable(timestampWritable); } if (dcv.noNulls && !dcv.isRepeating) { return writeValue(TimestampUtils.timestampColumnVectorWritable(dcv, row, timestampWritable)); } else if (dcv.noNulls && dcv.isRepeating) { return writeValue(TimestampUtils.timestampColumnVectorWritable(dcv, 0, timestampWritable)); } else if (!dcv.noNulls && !dcv.isRepeating && !dcv.isNull[row]) { return writeValue(TimestampUtils.timestampColumnVectorWritable(dcv, row, timestampWritable)); } else if (!dcv.noNulls && dcv.isRepeating && !dcv.isNull[0]) { return writeValue(TimestampUtils.timestampColumnVectorWritable(dcv, 0, timestampWritable)); } else if (!dcv.noNulls && dcv.isRepeating && dcv.isNull[0]) { return null; } else if (!dcv.noNulls && !dcv.isRepeating && dcv.isNull[row]) { return null; } throw new HiveException( String.format( "Incorrect null/repeating: row:%d noNulls:%b isRepeating:%b isNull[row]:%b isNull[0]:%b", row, dcv.noNulls, dcv.isRepeating, dcv.isNull[row], dcv.isNull[0])); }
@Override public Object setValue(Object field, ColumnVector column, int row) throws HiveException { TimestampColumnVector dcv = (TimestampColumnVector) column; TimestampWritable timestampWritable = (TimestampWritable) dcv.getScratchWritable(); if (timestampWritable == null) { timestampWritable = new TimestampWritable(); dcv.setScratchWritable(timestampWritable); } if (dcv.noNulls && !dcv.isRepeating) { return setValue(field, TimestampUtils.timestampColumnVectorWritable(dcv, row, timestampWritable)); } else if (dcv.noNulls && dcv.isRepeating) { return setValue(field, TimestampUtils.timestampColumnVectorWritable(dcv, 0, timestampWritable)); } else if (!dcv.noNulls && !dcv.isRepeating && !dcv.isNull[row]) { return setValue(field, TimestampUtils.timestampColumnVectorWritable(dcv, row, timestampWritable)); } else if (!dcv.noNulls && !dcv.isRepeating && dcv.isNull[row]) { return null; } else if (!dcv.noNulls && dcv.isRepeating && !dcv.isNull[0]) { return setValue(field, TimestampUtils.timestampColumnVectorWritable(dcv, 0, timestampWritable)); } else if (!dcv.noNulls && dcv.isRepeating && dcv.isNull[0]) { return null; } throw new HiveException( String.format( "Incorrect null/repeating: row:%d noNulls:%b isRepeating:%b isNull[row]:%b isNull[0]:%b", row, dcv.noNulls, dcv.isRepeating, dcv.isNull[row], dcv.isNull[0])); } }
@Override public TimestampWritable getPrimitiveWritableObject(Object o) { if(o == null) return null; if(o instanceof String) { return new TimestampWritable(ParsePrimitiveUtils.parseTimestamp((String)o)); } else { return new TimestampWritable((Timestamp) o); } }
@Override public Object create(byte[] bytes, int offset) { return formatTimeStamp(new TimestampWritable(bytes, offset)); }
@Override public TimestampWritable getPrimitiveWritableObject(Object o) { TimestampWritable value = null; if (o != null) { try { value = new TimestampWritable((Timestamp) o); } catch (Exception e) { logExceptionMessage(o, "TIMESTAMP"); } } return value; } }
@Override public TimestampWritable getPrimitiveWritableObject(Object o) { if (o == null) { return null; } final NullableTimeStampMilliHolder h = (NullableTimeStampMilliHolder) o; return new TimestampWritable(new java.sql.Timestamp(h.value)); }
@Override public TimestampWritable getPrimitiveWritableObject(Object o) { final TimeStampMilliHolder h = (TimeStampMilliHolder) o; return new TimestampWritable(new java.sql.Timestamp(h.value)); }
@Override public TimestampWritable getPrimitiveWritableObject(Object o) { java.sql.Timestamp value = getPrimitiveJavaObject(o); if (value == null) { return null; } return new TimestampWritable(value); } }