복붙노트

[HADOOP] Apache PIG를 사용하여 여러 줄 JSON 읽기

HADOOP

Apache PIG를 사용하여 여러 줄 JSON 읽기

JSON 파일이 있고 Apache Pig를 사용하여 읽고 싶습니다.

일반 JSONLOADER를 사용해 보았지만 JSONLOADER가 한 줄 JSON에서만 작동하는 것처럼 보입니다. 그런 다음 Elephant-Bird와 함께 시도했습니다. 그러나 여전히 결과를 올바르게 볼 수 없습니다. 누구든지 해결책을 제안 할 수 있습니까?

입력 :

{"employees":[                                          
         {"firstName":"John", "lastName":"Doe"},              
         {"firstName":"Anna", "lastName":"Smith"},                      
         {"firstName":"Peter", "lastName":"Jones"}             
]}      

참고 : 입력을 한 줄로 변환하고 싶지 않습니다.

스크립트:

A = LOAD 'input' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad');       
B = FOREACH A GENERATE FLATTEN($0#'employees');    
Dump B;

예상 결과는 다음과 같아야합니다.

([firstName#John,lastName#Doe])                                      
([firstName#Anna,lastName#Smith])                                 
([firstName#Peter,lastName#Jones])  

해결법

  1. ==============================

    1.siva의 의견에서 언급했듯이 대답은 기본적으로 입력을 한 줄로 변경해야한다는 것입니다.

    siva의 의견에서 언급했듯이 대답은 기본적으로 입력을 한 줄로 변경해야한다는 것입니다.

  2. from https://stackoverflow.com/questions/28653431/multi-line-json-read-using-apache-pig by cc-by-sa and MIT license