org.apache.pig.piggybank.evaluation.datetime.diff
Class ISOMonthsBetween
java.lang.Object
org.apache.pig.EvalFunc<Long>
org.apache.pig.piggybank.evaluation.datetime.diff.ISOMonthsBetween
public class ISOMonthsBetween
- extends EvalFunc<Long>
ISOMonthsBetween returns the number of months between two ISO8601 datetimes as a Long
Jodatime: http://joda-time.sourceforge.net/
ISO8601 Date Format: http://en.wikipedia.org/wiki/ISO_8601
Example usage:
REGISTER /Users/me/commiter/piggybank/java/piggybank.jar ;
REGISTER /Users/me/commiter/piggybank/java/lib/joda-time-1.6.jar ;
DEFINE ISOYearsBetween org.apache.pig.piggybank.evaluation.datetime.diff.ISOYearsBetween();
DEFINE ISOMonthsBetween org.apache.pig.piggybank.evaluation.datetime.diff.ISOMonthsBetween();
DEFINE ISODaysBetween org.apache.pig.piggybank.evaluation.datetime.diff.ISODaysBetween();
DEFINE ISOHoursBetween org.apache.pig.piggybank.evaluation.datetime.diff.ISOHoursBetween();
DEFINE ISOMinutesBetween org.apache.pig.piggybank.evaluation.datetime.diff.ISOMinutesBetween();
DEFINE ISOSecondsBetween org.apache.pig.piggybank.evaluation.datetime.diff.ISOSecondsBetween();
ISOin = LOAD 'test.tsv' USING PigStorage('\t') AS (dt:chararray, dt2:chararray);
DESCRIBE ISOin;
ISOin: {dt: chararray,dt2: chararray}
DUMP ISOin;
(2009-01-07T01:07:01.000Z,2008-02-01T00:00:00.000Z)
(2008-02-06T02:06:02.000Z,2008-02-01T00:00:00.000Z)
(2007-03-05T03:05:03.000Z,2008-02-01T00:00:00.000Z)
...
diffs = FOREACH ISOin GENERATE ISOYearsBetween(dt, dt2) AS years,
ISOMonthsBetween(dt, dt2) AS months,
ISODaysBetween(dt, dt2) AS days,
ISOHoursBetween(dt, dt2) AS hours,
ISOMinutesBetween(dt, dt2) AS mins,
ISOSecondsBetween(dt, dt2) AS secs;
DESCRIBE diffs;
diffs: {years: long,months: long,days: long,hours: long,mins: long,secs: long}
DUMP diffs;
(0L,11L,341,8185L,491107L,29466421L)
(0L,0L,5,122L,7326L,439562L)
(0L,-10L,-332,-7988L,-479334L,-28760097L)
Methods inherited from class org.apache.pig.EvalFunc |
finish, getLogger, getPigLogger, getReporter, getReturnType, getSchemaName, isAsynchronous, progress, setPigLogger, setReporter, warn |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ISOMonthsBetween
public ISOMonthsBetween()
exec
public Long exec(Tuple input)
throws IOException
- Description copied from class:
EvalFunc
- This callback method must be implemented by all subclasses. This
is the method that will be invoked on every Tuple of a given dataset.
Since the dataset may be divided up in a variety of ways the programmer
should not make assumptions about state that is maintained between
invocations of this method.
- Specified by:
exec
in class EvalFunc<Long>
- Parameters:
input
- the Tuple to be processed.
- Returns:
- result, of type T.
- Throws:
IOException
outputSchema
public Schema outputSchema(Schema input)
- Overrides:
outputSchema
in class EvalFunc<Long>
- Parameters:
input
- Schema of the input
- Returns:
- Schema of the output
getArgToFuncMapping
public List<FuncSpec> getArgToFuncMapping()
throws FrontendException
- Overrides:
getArgToFuncMapping
in class EvalFunc<Long>
- Returns:
- A List containing FuncSpec objects representing the Function class
which can handle the inputs corresponding to the schema in the objects
- Throws:
FrontendException
Copyright © ${year} The Apache Software Foundation