public VectorUDFUnixTimeStampDate(int colNum, int outputColumn) { /* not a real field */ super(-1, colNum, outputColumn); dateWritable = new DateWritable(); }
public DateTransformerAdapter(DateObjectInspector columnType, AbstractTransformer transformer) { this(columnType, transformer, new DateWritable()); }
@Override public DateWritable getPrimitiveWritableObject(Object o) { if (o == null) { return null; } final NullableDateHolder h = (NullableDateHolder) o; org.joda.time.LocalDate localDate = new org.joda.time.LocalDate(h.value, org.joda.time.DateTimeZone.UTC); // Use "toDate()" to get java.util.Date object with exactly the same year the same year, month and day as Joda date. // See more in Javadoc for "LocalDate#toDate()" return new DateWritable(new java.sql.Date(localDate.toDate().getTime())); }
@Override public void copyToNewInstance(Object newInstance) throws UDFArgumentException { super.copyToNewInstance(newInstance); // Need to preserve currentDate GenericUDFCurrentDate other = (GenericUDFCurrentDate) newInstance; if (this.currentDate != null) { other.currentDate = new DateWritable(this.currentDate); } } }
@Override public DateWritable getPrimitiveWritableObject(Object o) { final DateHolder h = (DateHolder) o; org.joda.time.LocalDate localDate = new org.joda.time.LocalDate(h.value, org.joda.time.DateTimeZone.UTC); // Use "toDate()" to get java.util.Date object with exactly the same year the same year, month and day as Joda date. // See more in Javadoc for "LocalDate#toDate()" return new DateWritable(new java.sql.Date(localDate.toDate().getTime())); }
static DateWritable nextDate(ColumnVector vector, int row, Object previous) { if (vector.isRepeating) { row = 0; } if (vector.noNulls || !vector.isNull[row]) { DateWritable result; if (previous == null || previous.getClass() != DateWritable.class) { result = new DateWritable(); } else { result = (DateWritable) previous; } int date = (int) ((LongColumnVector) vector).vector[row]; result.set(date); return result; } else { return null; } }
public static DateWritable nextDate(ColumnVector vector, int row, Object previous) { if (vector.isRepeating) { row = 0; } if (vector.noNulls || !vector.isNull[row]) { DateWritable result; if (previous == null || previous.getClass() != DateWritable.class) { result = new DateWritable(); } else { result = (DateWritable) previous; } int date = (int) ((LongColumnVector) vector).vector[row]; result.set(date); return result; } else { return null; } }
private Date readDateValue(String dateStr) { // try either yyyy-mm-dd, or integer representing days since epoch try { DateWritable writableVal = new DateWritable(java.sql.Date.valueOf(dateStr)); return new Date(writableVal.getDays()); } catch (IllegalArgumentException err) { // Fallback to integer parsing LOG.debug("Reading date value as days since epoch: " + dateStr); return new Date(Long.parseLong(dateStr)); } } }
private static String convertToString(org.apache.hadoop.hive.metastore.api.Date val) { if (val == null) { return ""; } DateWritable writableValue = new DateWritable((int) val.getDaysSinceEpoch()); return writableValue.toString(); }
@Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { if (arguments.length != 0) { throw new UDFArgumentLengthException( "The function CURRENT_DATE does not take any arguments, but found " + arguments.length); } if (currentDate == null) { Date dateVal = Date.valueOf(SessionState.get().getQueryCurrentTimestamp().toString().substring(0, 10)); currentDate = new DateWritable(dateVal); } return PrimitiveObjectInspectorFactory.writableDateObjectInspector; }
private void initConvertSourceEntry(int logicalColumnIndex, TypeInfo convertSourceTypeInfo) { isConvert[logicalColumnIndex] = true; Category convertSourceCategory = convertSourceTypeInfo.getCategory(); if (convertSourceCategory == Category.PRIMITIVE) { PrimitiveTypeInfo convertSourcePrimitiveTypeInfo = (PrimitiveTypeInfo) convertSourceTypeInfo; convertSourcePrimitiveObjectInspectors[logicalColumnIndex] = PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector( convertSourcePrimitiveTypeInfo); // These need to be based on the target. PrimitiveCategory targetPrimitiveCategory = targetPrimitiveCategories[logicalColumnIndex]; switch (targetPrimitiveCategory) { case DATE: convertTargetWritables[logicalColumnIndex] = new DateWritable(); break; case STRING: convertTargetWritables[logicalColumnIndex] = new Text(); break; default: // No additional data type specific setting. break; } } }
@Override protected void updateMax(Object maxValue, DateObjectInspector maxFieldOI) { if ((maxValue != null) && (max == null || max.compareTo(maxFieldOI.getPrimitiveWritableObject(maxValue)) < 0)) { // DateWritable is mutable, DateStatsAgg needs its own copy max = new DateWritable(maxFieldOI.getPrimitiveWritableObject(maxValue)); } } };
@Override protected void updateMin(Object minValue, DateObjectInspector minFieldOI) { if ((minValue != null) && (min == null || min.compareTo(minFieldOI.getPrimitiveWritableObject(minValue)) > 0)) { // DateWritable is mutable, DateStatsAgg needs its own copy min = new DateWritable(minFieldOI.getPrimitiveWritableObject(minValue)); } }
DateWritable dateWriteable = new DateWritable(java.sql.Date.valueOf(boundValue)); int value = dateWriteable.getDays(); int maxValue = range.maxValue.intValue();
@Override protected void update(Object p, PrimitiveObjectInspector inputOI) { // DateWritable is mutable, DateStatsAgg needs its own copy DateWritable v = new DateWritable((DateWritable) inputOI.getPrimitiveWritableObject(p)); //Update min counter if new value is less than min seen so far if (min == null || v.compareTo(min) < 0) { min = v; } //Update max counter if new value is greater than max seen so far if (max == null || v.compareTo(max) > 0) { max = v; } // Add value to NumDistinctValue Estimator numDV.addToEstimator(v.getDays()); }
return new TimestampWritable(new Timestamp(0)); case DATE: return new DateWritable(new Date(0)); case FLOAT: return new FloatWritable(0);
int value; if (colTypeLowerCase == serdeConstants.DATE_TYPE_NAME) { DateWritable writableVal = new DateWritable(java.sql.Date.valueOf(boundValue)); value = writableVal.getDays(); } else {
@Override public DateWritable getPrimitiveWritableObject(Object o) { if(o == null) return null; if(o instanceof String) { return new DateWritable(parse((String)o)); } else { return new DateWritable((Date) o); } }
break; case DATE: writer.value(new DateWritable( (int) ((LongColumnVector) vector).vector[row]) .toString());
@Override public DateWritable getPrimitiveWritableObject(Object o) { DateWritable value = null; if (o != null) { try { value = new DateWritable((Date) o); } catch (Exception e) { logExceptionMessage(o, "DATE"); value = new DateWritable(); } } return value; }