[HADOOP] 별개의 커플 (쌍)을 필터링하는 방법
HADOOP별개의 커플 (쌍)을 필터링하는 방법
나는 돼지를 처음 사용합니다. 두 요소 사이에서 탭으로 구분 된 쌍을 생성하는 Pig 스크립트가 있습니다. 예를 들어, 한 줄에 한 쌍씩 :
John Paul
Tom Nik
Mark Bill
Tom Nik
Paul John
중복 조합을 필터링해야합니다. DISTINCT를 사용하면 이중 "Tom Nik"항목을 필터링합니다. 결과는 다음과 같습니다.
John Paul
Tom Nik
Mark Bill
Paul John
이 접근 방식의 문제점은 내가 "John Paul"과 "Paul John"둘 다 남겨두고 내 목적에 따라 동일하게 처리해야한다는 것입니다. 순열 조합을 제거하는 방법이 있습니까?
해결법
-
==============================
1.Pig에서 문자열 비교가 어떻게 구현되는지 잘 모르겠지만 다음과 같이 시도해 보는 것이 좋습니다.
Pig에서 문자열 비교가 어떻게 구현되는지 잘 모르겠지만 다음과 같이 시도해 보는 것이 좋습니다.
-- A is your input B = FOREACH A GENERATE FLATTEN(($0 < $1 ? ($0, $1) : ($1, $0))) ; C = DISTINCT B ;
'더 작은'이 항상 먼저 나타나도록 이름을 정렬하면 John Paul과 Paul John의 순서가 모두 같아야 DISTINCT가 제거됩니다.
그러나이 방법은 모두 문자열 비교가 어떻게 구현되는지에 달려 있습니다. 예를 들어 길이를 비교하면 John Paul 사례가 올바르게 필터링되지 않습니다.
from https://stackoverflow.com/questions/22812857/pig-how-to-filter-distinct-couples-pairs by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Map4 및 Reducer 로그를 파일에 추가하지 않는 Log4j RollingFileAppender (0) | 2019.09.10 |
---|---|
[HADOOP] context.write (k, v)에서 값을 출력하는 방법 (0) | 2019.09.10 |
[HADOOP] 하둡 버퍼링 vs 스트리밍 (0) | 2019.09.10 |
[HADOOP] HIVE JDBC ThriftHive $ Client.sendBase (0) | 2019.09.10 |
[HADOOP] 다른 하이브 스크립트에서 하이브 스크립트를 실행할 수 있습니까? (0) | 2019.09.10 |