2013-05-29 2 views
4

저는 Datetime 데이터 형식 인 CurrentTime()을 사용하고 있습니다. 그러나, 나는 chararray로 그것을 필요로한다.돼지 - datetime을 chararray로 캐스팅하는 방법

나는 다음과 같은 다양한 방법을 시도했습니다
A = LOAD ... 
B = FOREACH A GENERATE CurrentTime() AS todaysDate; 

:

B = FOREACH A GENERATE (chararray)CurrentTime() AS todaysDate; 

그러나, 나는 항상 오류 1052 얻을 : 나는 다음이 chararray 할 날짜 캐스팅 할 수 없습니다.

누구든지이 작업을 수행 할 수 있습니다. 그건 그렇고, 나는 돼지를 아주 좋아합니다. 미리 감사드립니다!

답변

3

(예 : CurrentTime()implementation 참조) 변환을 수행하는 custom UDF을 만들어야합니다. 또는 유사한 문제의 해결 방법에 대한 내 answer을 확인하십시오.
AWS를 사용중인 경우 DATE_TIME UDF를 사용하십시오.

+0

보고 원하는 형식을 선택할 수 있습니다. 더 쉬운 방법이 없다는 것이 이상하게 보입니다. 고맙습니다! – MariaS

6

나는 비슷한 문제가 있었고 다른 대답에서 설명한대로 사용자 지정 UDF를 사용하고 싶지 않았습니다. 나는 돼지로 꽤 새로 왔지만 UDF의 필요성을 정당화하는 꽤 기본적인 작업으로 보인다. 이 명령은 나를 위해 잘 작동합니다 :

B = FOREACH A GENERATE ToString(yourdatetimeobject, 'yyyy-MM-dd\'T\'HH:mm:ssz') AS yourfieldname; 

당신은 내가 유사한 주제에 대한 답변에서 해결 방법을 사용하여 종료 된 SimpleDateFormat javadoc

관련 문제