2014-02-20 2 views
-1

나는 particluar 웹 페이지를 방문하는 고유 한 사용자 ID 번호를 찾는 돼지 스크립트를 작성하고 싶습니다.웹 페이지의 고유 방문자 찾기

테이블 정의 : a = (userid:chararray, otherid:chararray, webpage:chararray)

이 내가 쓴하지만 당신은 중첩 된 foreach는 내부 DISTINCT를 사용할 필요가

a = (userid:chararray, otherid:chararray, webpage:chararray) 
group_by_page = GROUP a by webpage ; 
count_d = FOREACH group_by_page GENERATE group, count(distinct(a.userid)); 
+1

Java와 어떤 관련이 있습니까? –

+0

나는 그렇지 않다고 생각한다. count_d = FOREACH를 실행할 때 해당 태그 –

답변

1

작동하지 않는 것입니다; 그것은 UDF가 아닙니다.

a = LOAD 'input' AS (userid:chararray, otherid:chararray, webpage:chararray); 
group_by_page = GROUP a by webpage; 
count_d = FOREACH group_by_page { uniq = DISTINCT a.userid; GENERATE group, COUNT(uniq); }; 

이동 here을 중첩 된 foreach 문에 대한 자세한 내용은 : 당신이 갈 필요가있는 곳을 얻어야한다.

+0

을 제거했습니다. group_by_page {uniq = DISTINCT a.userid; GENERATE 그룹, count (uniq); }; 다음과 같은 오류가 발생합니다 ...... ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070 : 수입을 사용하여 계산할 수 없습니다 : [, java.lang., org.apache.pig.builtin., org. apache.pig.impl.builtin.] – user2942227

+0

사례를 수정해야합니다. UDF는'count'가 아니라'COUNT'라고합니다. –