복붙노트

[HADOOP] 아파치 돼지, ELEPHANTBIRDJSON 로더

HADOOP

아파치 돼지, ELEPHANTBIRDJSON 로더

내가 입력 아래 구문 분석하려고 해요 Elephantbird의 JSON 로더를 사용하여 (이 입력에이 개 기록이있다)

여기 내 구문은 다음과 같습니다

register '/home/data/Desktop/elephant-bird-pig-4.1.jar';

a = LOAD '/pig/tc1.log' USING 
com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') as (json:map[]);

b = FOREACH a GENERATE flatten(json#'node_disk_lnum_1') AS 
node_disk_lnum_1,flatten(json#'node_disk_xfers_in_rate_sum') AS 
node_disk_xfers_in_rate_sum,flatten(json#'node_disk_bytes_in_rate_22') AS 
node_disk_bytes_in_rate_22, flatten(json#'node_disk_lnum_7') AS
node_disk_lnum_7;

DESCRIBE b;

B 결과를 설명 :

c = FOREACH b GENERATE node_disk_lnum_1;

DESCRIBE c;
DUMP c;

예상 결과:

아래의 오류를 던지는

내가 놓친 거지 무엇을 도와주세요?

해결법

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

    1.당신은 당신의 JSON에서 중첩 된 데이터를, 그래서 -nestedload 제거하지 마십시오

    당신은 당신의 JSON에서 중첩 된 데이터를, 그래서 -nestedload 제거하지 마십시오

    a = LOAD '/pig/tc1.log' USING com.twitter.elephantbird.pig.load.JsonLoader() as (json:map[]);
    
  2. from https://stackoverflow.com/questions/42064795/apache-pig-elephantbirdjson-loader by cc-by-sa and MIT license