복붙노트

[HADOOP] 쿼리 '에 의해 주문 하이브를 사용하는 동안 정렬되지 않은 출력을 얻기

HADOOP

쿼리 '에 의해 주문 하이브를 사용하는 동안 정렬되지 않은 출력을 얻기

다음과 같이 내가 '으로 주문'을 사용하여 시도했다 :

select fieldA,fieldB,fieldC,fieldD from testfilter where fieldA ='000009000002'order by fieldA,fieldB,fieldC,fieldD;

그러나이 이런 정렬되지 않은 출력 결과 :

000009000002    7212    023     653
000009000002    9999    058     159
000009000002    9999    058     159
000009000002    9999    058     159
000009000002    9999    058     159
000009000002    9999    058     159
000009000002    9999    058     24
000009000002    9999    058     25
000009000002    9999    058     299
000009000002    9999    058     399
000009000002    9999    058     99
000009000002    9999    058     99
000009000002    9999    058     99
000009000002    9999    058     99

무슨 이유가 될 수 있을까?

참고 : 나는 하이브 0.10를 사용하고 있습니다.

해결법

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

    1.내가 잘못 아니에요 경우 문자열로 모든 컬럼의 데이터 유형을 유지처럼 보인다.

    내가 잘못 아니에요 경우 문자열로 모든 컬럼의 데이터 유형을 유지처럼 보인다.

    따라서 데이터의 순서가 일어나고 있지만 문자열 발생으로는 전적으로 즉.

    000009000002    7212    023     653
    

    // 한 그룹

    000009000002    9999    058     159
    000009000002    9999    058     159
    000009000002    9999    058     159
    000009000002    9999    058     159
    000009000002    9999    058     159
    000009000002    9999    058     24
    000009000002    9999    058     25
    000009000002    9999    058     299
    000009000002    9999    058     399
    000009000002    9999    058     99
    000009000002    9999    058     99
    000009000002    9999    058     99
    000009000002    9999    058     99
    

    // 두 번째 그룹

    여기서 첫 번째 세 개의 열은 동일한 값이지만, 마지막 열은 전적으로 구성된다.

    도 1은 2보다 작고, 그래서 159 먼저, 24 등과 같이 다음에 오는 ..

    그래서 당신은 int로 데이터 유형을 수정할 수 있습니다

    희망이 도움이 ... !!

  2. from https://stackoverflow.com/questions/28404306/getting-unordered-output-while-using-hive-order-by-query by cc-by-sa and MIT license