[HADOOP] 하이브 NVL 열의 날짜 형식을 사용할 수 없습니다 - NullpointerException
HADOOP하이브 NVL 열의 날짜 형식을 사용할 수 없습니다 - NullpointerException
나는 HDFS를 통해 MapR Hive를 사용하고 있으며, 아래의 문제를 겪고 있습니다. 테이블의 열 유형이 '날짜'유형이면 NVL 기능이 작동하지 않습니다. 다른 데이터 유형에서도 마찬가지입니다.
그것은 단순히 던졌습니다.
NullpointerException:Null
심지어 함수를 설명하는 것은 같은 예외를 던지고있다.
여기서 친절히 도와주세요. 하이브 배포판의 버그입니까?
해결법
-
==============================
1.해결 방법으로 문제를 직접 해결했습니다.
해결 방법으로 문제를 직접 해결했습니다.
날짜 유형의 경우 하이브 COALESCE 기능을 다음과 같이 사용할 수 있습니다.
COALESCE(nt.assess_dt, cast('9999-01-01' as date))
위의 대답은 다음과 같이 설명 할 수 있습니다.
COLESCE가 반환 한 값이 동일한 유형이어야하는 NVL과 약간 다릅니다. 따라서 blank ''는 위의 예에서 COALESCE에 의해 반환 될 수 없습니다.
이 때문에 저는 매우 큰 날짜 값인 9999-01-01을 사용하여 null 값을 나타내고 정품 날짜 값을 구별했습니다. 귀하의 날짜 열이 실제로이 큰 값을 유효한 값으로 가질 수있는 경우, 널 날짜를 나타 내기 위해 다른 유효한 날짜 값을 고려해야합니다.
여기 및 다른 대안에 대해 자세히 알아보십시오.
-
==============================
2.하나는 원래 요청한 NVL을 사용할 수도 있습니다.
하나는 원래 요청한 NVL을 사용할 수도 있습니다.
NVL(nt.assess_dt, cast('9999-01-01' as date))
from https://stackoverflow.com/questions/32269671/hive-nvl-does-not-work-with-date-type-of-the-column-nullpointerexception by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Apache Phoenix - Kerberos 클러스터에서 쿼리 서버와 씬 클라이언트를 시작하는 방법 (0) | 2019.07.29 |
---|---|
[HADOOP] 하이브에서는 새로운 열을 추가 할 열을 지정하는 방법이 있습니까? (0) | 2019.07.28 |
[HADOOP] Hadoop : 매퍼 출력을 출력 파일에 작성하는 감속기 (0) | 2019.07.28 |
[HADOOP] 하이브 : 큰 테이블에서 작은 테이블 만들기 (0) | 2019.07.28 |
[HADOOP] 실행중인 응용 프로그램에서 사용되는 컨테이너 및 VC 수를 가져 오는 YARN 셸 명령 (0) | 2019.07.28 |