0
나는 다음과 유사한 돼지 스크립트가 :PIG - 문자열을 매개 변수에 연결 하시겠습니까?
a = LOAD 'feedname.hourly_data'
USING org.apache.hcatalog.pig.HCatLoader();
b = FILTER a BY dt=='$date{00}';
c = GROUP b ALL;
d = FOREACH c GENERATE COUNT(b);
dump d;
스크립트는 다음 인수와 함께 실행됩니다
a = LOAD 'feedname.hourly_data'
USING org.apache.hcatalog.pig.HCatLoader();
b = FILTER a BY dt=='2014070800';
c = GROUP b ALL;
d = FOREACH c GENERATE COUNT(b);
dump d;
:이 스크립트는 하드 코딩 DT 값으로 작동
가
pig -useHCatalog -p date=20140708 my_script.pig
주
그러나 date=20140708
매개 변수를 전달한 후 쿼리를 실행하면 쿼리 결과가 0으로 반환됩니다. 왜 이런 일이 일어나는 지 아는 사람이 있습니까? 말할만한 정보가 충분하지 않다면 무엇을 테스트해야합니까?
감사합니다. dryrun 옵션을 사용하면 알 수 없습니다. 대체 출력을 보면 내 '$ date {00}'은 (는) '20140708 {00}'(으)로 확장되며 잘못되었습니다. 돼지는'$ dt == $ {date} 00;'에 의해 b = FILTER a == $ {date} 00;'이 작동하지 않는다고해도 - 돼지는'Syntax error, '$'근처의 예상치 못한 기호로 불평하지만'b = FILTER a BY dt == '$ {date} 00';',하지만 $ {date} 00은 확장되지 않습니다. – SheerSt
Bummer. 나는 너에게 다른 대안을 제안했다. –
제안 해 주셔서 감사합니다. 나는 그것을 시도하고 나에게 메모리 오류를 준다. (오류 org.apache.pig.tools.grunt.Grunt - 오류 2998 : 처리되지 않은 내부 오류. GC 오버 헤드 한계를 초과했다.)'% default MIN_DATE \'echo $ {00}과 (23) 각각을 반향 출력합니다. – SheerSt