2016-06-14 2 views
0

내 Python UDF 코드가 돼지에서 datetime 변수 인 경우 문자열 개체로 시도했지만 오류가 발생했습니다 ( ).변수를 datetime 형식의 변수를 Python에서 Python으로 전달할 수 있습니다. UDF

형식 오류 : 날짜 객체는 내가 오류가 오류

from datetime import date 

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

을 준 'org.joda.time.DateTime'개체가 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 

답변

0

bornorg.joda.time.DateTime 개체이며 하위 문자열은 여기에 적용 할 수 없습니다. 당신은 UDF에 돼지에서 chararray에 합격하거나,

rightnow.monthOfYear().getAsText() 
+0

예, 나는 chararray를 사용하여 작업을 달성 그것의 방법과 오브젝트를 처리해야하지만 날짜를 사용할 때, 나는 기본을 사용할 수 없습니다 태어난 날과 같은 파이썬 기능이 있습니다. – pratiklodha

관련 문제