2014-05-19 3 views
0

나는 돼지를 처음 접했고 그룹 간 필터링을 쉽게 할 수 있는지 궁금해하고 있습니다. userid 및 일부 타임 스탬프로 그룹화 된 일부 데이터가 있습니다. 30 분 미만의 시간 간격을 갖는 두 개의 연속 된 타임 스탬프가있는 그룹 만 가져 가고 싶습니다. 돼지에서 쉽게 표현할 수 있습니까?PIG - 그룹의 내용으로 groupby 필터링

고맙습니다.

답변

1

가장 확실한 방법은 UDF를 작성하는 것입니다. 이 함수는 시간 소인을 입력으로 가져 와서 주문하고 타임 스탬프 간의 최소 차이를 계산합니다. 그런 다음이 UDF의 출력을 기반으로 데이터를 필터링 할 수 있습니다.

실제 Pig 라틴어로 이것을 할 수는 있지만, 임시 데이터와 맵 감소주기가 더 많아서 가치가 없을 수도 있습니다. 이는 타임 스탬프 모음을 두 번 가져 와서 교차 제품을 얻고, 30 분 미만으로 구분 된 모든 타임 스탬프 쌍에 대한 표시기 변수를 만든 다음 각 사용자에 대해이 변수를 합산하는 것입니다. 합계가 0보다 큰 사용자는 원하는 속성을가집니다.

특정 문제에 부딪치게되면 다른 문제를 게시하여 어디서 붙어 있는지 정확히 설명하십시오.

+0

답장을 보내 주셔서 감사합니다. 나는 집계 UDF가 가장 정상적인 방법이라고 생각한다. – grasshopper