2017-10-24 3 views
0

돼지에 두 개의 데이터 객체가 있습니다.Apache Pig의 객체를 결합한 후 오류가 발생했습니다.

데이터 1 :

col_a: chararray, 
col_b: int, 
col_c: int, 
col_d: chararray 

데이터 2 :

내가 두 사람을 가입하려는
col_a: chararray, 
col_b: chararray, 
col_c: int, 
col_d: int, 
col_e: int 

, 나는 시도 :

all_data = JOIN data_1 BY (col_a) LEFT, data_2 by (col_b); 
all_data = JOIN data_1 BY (col_a), data_2 by (col_b); 

내가 개체를 덤프했을 때 (후 10 개의 레코드로 제한) 두 옵션 모두 동일한 오류를 반환했습니다.

  • 가 가입 개체에 대한 "설명"(내가 맨 위에 쓴) 두 객체에 대한
    • "설명"
      Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR 0: Exception while executing (Name: all_data_limit: Limit - scope-6383 Operator Key: scope-6383): org.apache.pig.backend.executionengine.ExecException: ERROR 0: Exception while executing (Name: all_data: New For Each(true,true)[tuple] - scope-6382 Operator Key: scope-6382): org.apache.pig.backend.executionengine.ExecException: ERROR 0: java.lang.ClassCastException: org.apache.pig.impl.io.NullableText cannot be cast to org.apache.pig.impl.io.NullableBytesWritable 
      
      (데이터 1이, 데이터 2가) 다시 좋은 결과를 준 - all_data도 다시 좋은 출력을 준 그것은해야한다.
    • 두 개체 모두 LIMIT 10을 인쇄했습니다. 좋은 데이터를 가지고 있습니다.
    • 는 내가 조금 실망지고있어 0.16.0

    는이에 대한 해결책을 찾을 수 없습니다와 난 돼지 버전, "EMR-5.2.0"아마존 클러스터를 사용하고 있습니다 3 일 동안 지금 검색 중 ... 도움이 될 것입니다. 감사합니다.

  • +0

    전체 스크립트 및 샘플 데이터를 게시하십시오. –

    답변

    1

    사용은 아래

    all_data = JOIN data_1 BY TRIM(col_a) LEFT, data_2 by TRIM(col_b); 
    all_data = JOIN data_1 BY TRIM(col_a), data_2 by TRIM(col_b); 
    

    가 오류없이 작동 더라면 알려 명령.

    +0

    실제로 작동했는데 공백을 제거 할 필요가 없었지만 ... 왜 도움이되는지 설명 할 수 있습니까? 왜 새 돼지 버전에 문제가 있습니까? 또한 돼지 0.12에서 뛰어나고 돼지 0.17에서 같은 오류를 주었던 같은 문제를 해결했습니다. 그리고 대단히 감사합니다 !! – Bramat

    관련 문제