나는 csv 파일을 읽고 그 데이터를 그룹화 한 후 카운트 작업을 수행하고 있습니다. 카운트가 0이면 데이터를 폴더 이름에 저장하고 카운트가> 0이면 데이터를 저장할 수있는 방법이 있습니까? 나는 아래의 코드로 시도했지만 일어나는 것은 아니다.아파치 돼지 조건에 따라 저장
CODE :
STORE countVal INTO '/user/cloudera/good' IF countVal > 0 ;
나는 csv 파일을 읽고 그 데이터를 그룹화 한 후 카운트 작업을 수행하고 있습니다. 카운트가 0이면 데이터를 폴더 이름에 저장하고 카운트가> 0이면 데이터를 저장할 수있는 방법이 있습니까? 나는 아래의 코드로 시도했지만 일어나는 것은 아니다.아파치 돼지 조건에 따라 저장
CODE :
STORE countVal INTO '/user/cloudera/good' IF countVal > 0 ;
USE 기능 SPLIT. 참조 :
방법이 몇 가지 있습니다https://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#SPLIT
SPLIT A INTO X IF f1<7, Y IF f2==5, Z IF (f3<6 OR f3>6);
:
1) 기준에 따라 분할을 수행하기 위해 분할 기능을 사용하여이.
count가 0보다 큰 경우 SPLIT 데이터를 양호로, 나쁜 경우 (count == 0);
2) BinCond 연산자를 사용하여 조건에 따라 데이터를 분리하려면 FOREACH 루프를 사용하십시오.
X = FOREACH A GENERATE, data, (count> 0? "good": "bad");
BinCond 연산자를 사용하여 폴더를 저장하는 방법은 두 가지입니다. count> 0이면 "good"폴더로 전체 파일을 이동해야합니다. 그렇지 않으면 전체 파일을 "bad"폴더로 이동해야합니다. –
내가 좋아하는 경우 두 폴더가 생성 될 때마다. countValue가 0이면 전체 파일이 정상 폴더에 저장됩니다. 즉, 한 번 실행하면 좋은 폴더가 만들어 지거나 나쁜 폴더가 생성됩니다. –