[HADOOP] hadoop을 사용하여 자체 조인 / 교차 제품을 구현하는 방법은 무엇입니까?
HADOOPhadoop을 사용하여 자체 조인 / 교차 제품을 구현하는 방법은 무엇입니까?
항목 쌍에 대해 몇 가지 평가를하는 것은 일반적인 작업입니다. 예 : 중복 제거, 협업 필터링, 유사 항목 등 이것은 기본적으로 동일한 데이터 소스를 사용하는 자체 조인 또는 교차 제품입니다.
해결법
-
==============================
1.자체 조인을 수행하려면 "축소 측 조인"패턴을 따라갈 수 있습니다. 매퍼는 키로 조인 / 외래 키를 내보내고 값으로 레코드를 내 보냅니다.
자체 조인을 수행하려면 "축소 측 조인"패턴을 따라갈 수 있습니다. 매퍼는 키로 조인 / 외래 키를 내보내고 값으로 레코드를 내 보냅니다.
따라서 다음 데이터에서 "도시"(가운데 열)에 자체 조인을 수행하려고한다고 가정 해 봅시다.
don,baltimore,12 jerry,boston,19 bob,baltimore,99 cameron,baltimore,13 james,seattle,1 peter,seattle,2
매퍼는 key-> value 쌍을 방출합니다.
(baltimore -> don,12) (boston -> jerry,19) (baltimore -> bob,99) (baltimore -> cameron,13) (seattle -> james,1) (seattle -> peter,2)
감속기에서, 우리는 이것을 얻을 것이다 :
(baltimore -> [(don,12), (bob,99), (cameron,13)]) (boston -> [(jerry,19)]) (seattle -> [(james,1), (peter,2)])
여기에서 내부 조인 논리를 선택할 수 있습니다. 이렇게하려면 다른 모든 항목에 대해 모든 항목을 일치시켜야합니다. 이렇게하려면 데이터를 배열 목록에로드 한 다음 항목을 N x N 반복하여 서로를 비교합니다.
축소 측 조인은 비용이 많이 듭니다. 당신이 아무것도 걸러 내지 않으면 그들은 꽤 많은 데이터를 감속기에 보냅니다. 또한 감속기의 메모리에 데이터를로드하는 데주의하십시오. 어레이 목록에 모든 데이터를로드하여 핫 조인 키로 힙을 날릴 수 있습니다.
위의 내용은 일반적인 축소 측 결합과 약간 다릅니다. 두 개의 데이터 세트를 결합 할 때 아이디어가 동일합니다. 외래 키가 키이고 레코드가 값입니다. 유일한 차이점은 두 개 이상의 데이터 세트에서 값이 올 수 있다는 것입니다. MultipleInputs를 사용하여 다른 매퍼가 서로 다른 입력 세트를 구문 분석하도록 한 다음 감속기가 둘 다에서 데이터를 수집하도록 할 수 있습니다.
제약 조건이없는 경우 교차 제품은 악몽입니다. 나.
select * from tablea, tableb;
이를 수행하는 데는 여러 가지 방법이 있습니다. 그들 중 누구도 특히 효율적이지 않습니다. 이런 유형의 행동을 원한다면 나에게 의견을 남겨주세요. 그러면 이것을 수행하는 방법을 설명하는 데 더 많은 시간을 할애 할 것입니다.
만약 당신이 유사성에 대한 근본적인 열쇠 인 조인 키를 찾아 낼 수 있다면, 당신은 훨씬 나아질 것입니다.
내 책 플러그 : MapReduce 디자인 패턴. 몇 달 안에 발표해야하지만, 정말로 관심이 있다면 조인에 관한 장을 이메일로 보내 줄 수 있습니다.
-
==============================
2.일반적으로 감속기를 사용하여 조인에 필요한 논리를 수행합니다. 트릭은 데이터 세트를 두 번 매핑하는 것이고, 어떤 마커를 실행하는지 나타내는 값에 마커를 추가하는 것입니다. 그러면 자체 조인은 다른 조인과 다르지 않습니다.
일반적으로 감속기를 사용하여 조인에 필요한 논리를 수행합니다. 트릭은 데이터 세트를 두 번 매핑하는 것이고, 어떤 마커를 실행하는지 나타내는 값에 마커를 추가하는 것입니다. 그러면 자체 조인은 다른 조인과 다르지 않습니다.
from https://stackoverflow.com/questions/11066434/how-to-implement-self-join-cross-product-with-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 자바를 사용하여 원격 HBase 서비스에 연결하기 (0) | 2019.07.28 |
---|---|
[HADOOP] Hortonworks HDP 샌드 박스의 HBase : ZooKeeper에서 마스터 주소를 가져올 수 없습니다. (0) | 2019.07.28 |
[HADOOP] 행의 배열 값을 확장하는 방법 !! 하이브 SQL 사용 (0) | 2019.07.28 |
[HADOOP] HBase : 여러 개의 테이블 또는 여러 개의 열이있는 단일 테이블을 만드시겠습니까? (0) | 2019.07.28 |
[HADOOP] CDH4 및 Yarn을 사용하여 Hadoop 작업 내역 및 로그를 보려면 어떻게합니까? (0) | 2019.07.28 |