나는 그 내용이 다음과 같이 로그 파일을 읽기 위해 노력하고 함께 공백으로 구분 된 파일 읽기 :는 돼지
2013-03-28T12 : 19 : 03.639648-05 : 00 host1의의 rpcbind를 : rpcbind를가에 종료 신호. "rpcbind -w"로 다시 시작
2013-03-28T12 : 20 : 33.158823-05 : 00 host2 rpcbind : rpcbind가 신호로 종료됩니다. 로 다시 시작 "rpcbind를 -w"
내가 이렇게 같은 PigStorage 공간 구분 기호 사용하여 시도했다 : (날짜로
cmessages = LOAD 'data.txt로'사용 PigStorage를 ('') : chararray, 호스트 : chararray, message : chararray);
하지만 세 번째 필드에서 메시지가 삭제되므로 나중에 유용하다고 생각됩니다.
덤프 cmessages;
<snip>
(2013-03-28T12:19:03.639648-05:00,host1,rpcbind:)
(2013-03-28T12:20:33.158823-05:00,host2,rpcbind:)
</snip>
비용이 많이 드는 정규 표현식 또는 UDF 로더를 필요로하지 않는이 로그 파일에 읽을 수있는 더 좋은 방법이 있나요? 돼지에는 두 번째 공간이 끝난 후 멈추라 고하는 뭔가가 있어야할까요? 아마.
업데이트 : 19 : 03.639648-05 : 00, host1의, rpcbind를 :)
I 대신
(2013-03-28T12의 : 그냥 내가 원하는 개정 거라고 같은
(2013-03-28T12 : 19 : 03.639648-05 : 00 host1의, 다음 rpcbind : rpcbind를 신호의 종료 "rpcbind를 -w"재시작.)
,536,기본적으로 튜플의 마지막 필드에 전체 로그 메시지가 필요합니다. 그게 더 분명해지기를 바랍니다.
댓글 섹션의 댓글이어야합니다. –
알기는하지만 그렇게할만한 가치가 없기 때문에 나는 할 수 없습니다. 그리고 잘못된 곳에서 세부 사항을 묻는 것은 --- IMHO --- 나는 아마도이 사람을 도울 수 있다는 것을 알고, 어떤 것도 대답하지 않는 것보다 낫습니다. – ATN
Ah 대신 (2013-03-28T12 : 19 : 03.639648-05 : 00, host1, rpcbind :) 튜플의 마지막 입력란에 포함 된 전체 메시지를 원합니다. (2013-03-28T12 : 19 : 03.639648-05 : 00, host1, rpcbind : rpcbind 신호를 통해 종료."rpcbind -w"로 다시 시작하십시오.) – user2234361