2014-09-24 7 views
0

PIG에서 한 파일에서 다른 Json 스키마를 읽는 방법을 알고 싶습니다. 하둡에서는 jsonparser를 사용하고 질문이있는 경우 json 요소의 종류를 알 수 있습니다.PIG에서 다른 json 스키마로드

한 Doccument 내부 JSON 요소는 다음과 같습니다

{"a": "bla", "e": 123, "f": 333}   
{ "a": "bla", "c": "aa"}      

내가 다음 명령을 사용하여 첫 번째 JSON 배열을로드 시도 :

A = load '/usr/local/hadoop/stuff.net' USING USING JsonLoader('a:chararray, e:int, f:int'); 
DUMP A; 

그것은 오류를 예외 : ERROR 2088 : 가져 오기에 실패했습니다.

B = load '/home/hadoop/Desktop/aaa' USING JsonLoader('a:chararray, c:chararray'); 
DUMP B; 

을 그러나 그것은 또한 내가 첫 번째 문에서 결과를 보여줍니다 결과를

를 검색 할 수 없습니다 두 번째 쿼리는 노력하고 있습니다.

그래서 같은 파일에서 다른 Json 스키마를로드하는 방법을 묻거나 싶지 않습니까?

답변

0

트위터의 elephantbird 프로젝트을 사용할 수 있다고 생각합니다. 몇 가지 예가 here입니다.

REGISTER 'elephant-bird.jar'; 
json_file_00 = LOAD 'json_file.json' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad'); 
json_file_01 = FOREACH json_file_00 GENERATE json_file_00#'fieldName' AS field_name; 

나는 또한 훌륭한하지만 오래된 모질라에서 akela project을 사용하고 있습니다 :

사용법은 그냥 jar 파일을 등록하고 중첩 된 JSON을로드 코끼리 UDF 기능을 사용할 수있는 것보다 매우 간단합니다.

관련 문제