2016-06-14 3 views
0

Mein Python UDF-Code, geboren ist eine Datetime-Variable von Pig, Ich versuchte es als String-Objekt, aber es gab auch einen Fehler, und behandelt es als Datetime-Objekt gab auch einen FehlerWie kann ich eine Variable vom Typ datetime von Pig an Python übergeben UDF

from datetime import date 

@outputSchema("age_key:chararray") 
def agekeyed(born): 
    today = date.today() 
    return born[:4] 

ich erhalte eine Fehlermeldung:

Typeerror: 'org.joda.time.DateTime' Objekt ist unsubscriptable

at org.python.core.Py.TypeError(Py.java:235) 
    at org.python.core.PyObject.__finditem__(PyObject.java:585) 
    at org.python.core.PyObjectDerived.__finditem__(PyObjectDerived.java:861) 
    at org.python.core.PyObject.__getitem__(PyObject.java:653) 
    at org.python.core.PyObjectDerived.__getitem__(PyObjectDerived.java:901) 
    at org.python.core.PyObject.__getslice__(PyObject.java:740) 
    at org.python.core.PyObjectDerived.__getslice__(PyObjectDerived.java:924) 
    at org.python.pycode._pyx3.agekeyed$1(keying.py:6) 
    at org.python.pycode._pyx3.call_function(keying.py) 
    at org.python.core.PyTableCode.call(PyTableCode.java:165) 
    at org.python.core.PyBaseCode.call(PyBaseCode.java:301) 
    at org.python.core.PyFunction.function___call__(PyFunction.java:376) 
    at org.python.core.PyFunction.__call__(PyFunction.java:371) 
    at org.python.core.PyFunction.__call__(PyFunction.java:361) 
    at org.python.core.PyFunction.__call__(PyFunction.java:356) 
    at org.apache.pig.scripting.jython.JythonFunction.exec(JythonFunction.java:117) 
    ... 16 more 

Antwort

0

born ist ein org.joda.time.DateTime Objekt, und Teilzeichenfolge kann hier nicht angewendet werden. Sie benötigen einen chararray von Schwein auf die UDF übergeben oder mit dem Objekt beschäftigen Methoden mit seinen

rightnow.monthOfYear().getAsText() 
+0

Ja, ich habe die Aufgabe erreicht eine chararray verwenden, aber wenn ich Datetime verwendet, kann ich nicht die Standard Python-Funktion darauf wie geboren.Jahr, geboren.Monat? – pratiklodha

Verwandte Themen