복붙노트

[HADOOP] Reducer 출력에서 ​​쉼표로 구분 된 키를 정렬하는 방법은 무엇입니까?

HADOOP

Reducer 출력에서 ​​쉼표로 구분 된 키를 정렬하는 방법은 무엇입니까?

MapReduce를 사용하여 RFM 분석 프로그램을 실행하고 있습니다. OutputKeyClass는 Text.class이며 R = BigInteger, F = Binteger, M = BigDecimal 및 Reducer에서 키로 쉼표로 구분 된 R (Recency), F (Frequency), M (Monetory)을 방출합니다. Customer_ID를 나타냅니다. Hadoop은 키를 기준으로 출력을 정렬하지만 최종 결과는 조금 더 위대하다는 것을 알고 있습니다. 출력 키를 먼저 R, F, M으로 정렬하고 싶지만 알 수없는 이유로 다음과 같은 출력 정렬 순서가 나타납니다.

545,1,7652    100000
545,23,390159.402343750    100001
452,13,132586    100002
452,4,32202    100004
452,1,9310    100007
452,1,4057    100018
452,3,18970    100021

그러나 다음과 같은 출력을 원합니다.

545,23,390159.402343750    100001
545,1,7652    100000
452,13,132586    100002
452,4,32202    100004
452,3,18970    100021
452,1,9310    100007
452,1,4057    100018

참고 : customer_ID는 맵 단계의 핵심 요소였으며 특정 Customer_ID에 속하는 모든 RFM 값은 Reducer에서 집계를 위해 함께 제공됩니다.

해결법

  1. ==============================

    1.그래서 많은 검색을 한 후 내가 지금 게시하고있는 유용한 자료를 발견했습니다.

    그래서 많은 검색을 한 후 내가 지금 게시하고있는 유용한 자료를 발견했습니다.

    내가 인터넷에서 읽은 내용에 대한 개인적인 이해를 바탕 으로이 답변을 코드 또는 설명의 어딘가에서 기술적으로 잘못하고 있다면 완벽하게 작동합니다.

  2. from https://stackoverflow.com/questions/35466163/how-to-sort-comma-separated-keys-in-reducer-ouput by cc-by-sa and MIT license