2013-06-25 2 views
0

내가 돼지에서하고 싶은 것은 SQL에서 매우 일반적입니다. yyy-mm-dd hh : mm : ss 형식의 날짜 필드가 있고 시간을 나타내는 정수가 들어있는 다른 필드가 있습니다. 쉽게 datetime 필드에 정수를 추가하여 시계 수학에서 기대 한 결과를 얻을 수있는 방법이 있습니까?돼지에 datetime을 추가하는 방법이 있습니까?

예 : 날짜는 2013-06-01 : 23:12:12입니다. 내가 2013년 6월 2일 1시 12분 12초을 얻어야한다

은 그럼 2 시간

를 추가합니다.

답변

6

최신 버전의 돼지 (0.11.0)에서는 가능해야합니다. 그러나 시간 (시간)은 ISO8601 Duration Format과 같아야합니다. 이 클래스는 Duration 객체와 함께 DateTime 객체를 추가 할 수있는 클래스 AddDuration을 제공합니다. 이 page에서 AddDuration에 대한 자세한 정보를 찾을 수 있습니다.

편집 :

예, 추가 할 수있는 음의 시간. 내 우분투 상자에이 시도 :

입력 :

2009-01-07T01:07:01.000Z,PT1S 
2008-02-06T02:06:02.000Z,PT1M 
2007-03-05T03:05:03.000Z,PT-1H 

검색어 :

grunt> a = LOAD '/pig.txt' USING PigStorage(',') AS (dt:datetime, dr:chararray); 
grunt> b = FOREACH a GENERATE AddDuration(dt, dr) AS dt1; 
grunt> dump b; 

출력 : 이것이 내가 부정적인 추가해야하는 경우 작동하는 경우

(2009-01-07T01:07:02.000Z) 
(2008-02-06T02:07:02.000Z) 
(2007-03-05T02:05:03.000Z) 
+0

당신은 알고 계십니까 시간도? –

+0

필자가 쓸 수 없으므로 필자의 답을 편집하고있다. 좀 봐주세요. – Tariq

+0

고마워, 이건 내가 필요한거야! –

관련 문제