@Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { checkArgsSize(arguments, 2, 3); checkArgPrimitive(arguments, 0); checkArgPrimitive(arguments, 1); if (arguments.length == 3) { if (arguments[2] instanceof ConstantObjectInspector) { isRoundOffNeeded = getConstantBooleanValue(arguments, 2); } } // the function should support both short date and full timestamp format // time part of the timestamp should not be skipped checkArgGroups(arguments, 0, tsInputTypes, STRING_GROUP, DATE_GROUP); checkArgGroups(arguments, 1, tsInputTypes, STRING_GROUP, DATE_GROUP); checkArgGroups(arguments, 0, dtInputTypes, STRING_GROUP, DATE_GROUP); checkArgGroups(arguments, 1, dtInputTypes, STRING_GROUP, DATE_GROUP); obtainTimestampConverter(arguments, 0, tsInputTypes, tsConverters); obtainTimestampConverter(arguments, 1, tsInputTypes, tsConverters); obtainDateConverter(arguments, 0, dtInputTypes, dtConverters); obtainDateConverter(arguments, 1, dtInputTypes, dtConverters); ObjectInspector outputOI = PrimitiveObjectInspectorFactory.writableDoubleObjectInspector; return outputOI; }
@Override public String getDisplayString(String[] children) { return getStandardDisplayString(getFuncName(), children); }
Date date1 = getTimestampValue(arguments, 0, tsConverters); if (date1 == null) { date1 = getDateValue(arguments, 0, dtInputTypes, dtConverters); if (date1 == null) { return null; Date date2 = getTimestampValue(arguments, 1, tsConverters); if (date2 == null) { date2 = getDateValue(arguments, 1, dtInputTypes, dtConverters); if (date2 == null) { return null; int sec1 = getDayPartInSec(cal1); int sec2 = getDayPartInSec(cal2);
Timestamp date1 = getTimestampValue(arguments, 0, tsConverters); if (date1 == null) { Date date = getDateValue(arguments, 0, dtInputTypes, dtConverters); if (date == null) { return null; Timestamp date2 = getTimestampValue(arguments, 1, tsConverters); if (date2 == null) { Date date = getDateValue(arguments, 1, dtInputTypes, dtConverters); if (date == null) { return null; int sec1 = getDayPartInSec(cal1); int sec2 = getDayPartInSec(cal2);
@Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { checkArgsSize(arguments, 2, 3); checkArgPrimitive(arguments, 0); checkArgPrimitive(arguments, 1); if (arguments.length == 3) { if (arguments[2] instanceof ConstantObjectInspector) { isRoundOffNeeded = getConstantBooleanValue(arguments, 2); } } // the function should support both short date and full timestamp format // time part of the timestamp should not be skipped checkArgGroups(arguments, 0, tsInputTypes, STRING_GROUP, DATE_GROUP); checkArgGroups(arguments, 1, tsInputTypes, STRING_GROUP, DATE_GROUP); checkArgGroups(arguments, 0, dtInputTypes, STRING_GROUP, DATE_GROUP); checkArgGroups(arguments, 1, dtInputTypes, STRING_GROUP, DATE_GROUP); obtainTimestampConverter(arguments, 0, tsInputTypes, tsConverters); obtainTimestampConverter(arguments, 1, tsInputTypes, tsConverters); obtainDateConverter(arguments, 0, dtInputTypes, dtConverters); obtainDateConverter(arguments, 1, dtInputTypes, dtConverters); ObjectInspector outputOI = PrimitiveObjectInspectorFactory.writableDoubleObjectInspector; return outputOI; }
Date date1 = getTimestampValue(arguments, 0, tsConverters); if (date1 == null) { date1 = getDateValue(arguments, 0, dtInputTypes, dtConverters); if (date1 == null) { return null; Date date2 = getTimestampValue(arguments, 1, tsConverters); if (date2 == null) { date2 = getDateValue(arguments, 1, dtInputTypes, dtConverters); if (date2 == null) { return null; int sec1 = getDayPartInSec(cal1); int sec2 = getDayPartInSec(cal2);
@Override public String getDisplayString(String[] children) { return getStandardDisplayString(getFuncName(), children); }
@Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { checkArgsSize(arguments, 2, 2); checkArgPrimitive(arguments, 0); checkArgPrimitive(arguments, 1); // the function should support both short date and full timestamp format // time part of the timestamp should not be skipped checkArgGroups(arguments, 0, tsInputTypes, STRING_GROUP, DATE_GROUP); checkArgGroups(arguments, 1, tsInputTypes, STRING_GROUP, DATE_GROUP); checkArgGroups(arguments, 0, dtInputTypes, STRING_GROUP, DATE_GROUP); checkArgGroups(arguments, 1, dtInputTypes, STRING_GROUP, DATE_GROUP); obtainTimestampConverter(arguments, 0, tsInputTypes, tsConverters); obtainTimestampConverter(arguments, 1, tsInputTypes, tsConverters); obtainDateConverter(arguments, 0, dtInputTypes, dtConverters); obtainDateConverter(arguments, 1, dtInputTypes, dtConverters); ObjectInspector outputOI = PrimitiveObjectInspectorFactory.writableDoubleObjectInspector; return outputOI; }
@Override public String getDisplayString(String[] children) { return getStandardDisplayString(getFuncName(), children); }