https://intrepidgeeks.com/tutorial/handle-hive-nulls

Hive는 사용 과정에서 NULL,''(빈 문자열)에 대한 판단과 식별이 불가피하다.Hive의 기본 하단 저장 빈 값은 다른 기존 데이터베이스와 다릅니다.

hive는 기본적으로 빈 값을 저장하는 규칙에 null을 적용

  1. 서로 다른 데이터 형식의 빈 값에 대한 저장 규칙인 Int와 String 유형, NULL 은 기본적으로\N으로 저장되고 조회할 때 NULL로 표시됩니다.
  2. String 유형의 데이터가 ""이면 저장이 ""이고 Int 유형의 필드에 데이터를 삽입""이면 결과는\N입니다."
  3. 서로 다른 데이터 형식의 빈값에 대한 조회는 Int 형식에 대해 isnull로 빈값을 판단할 수 있다.
  4. string 형식에 대해 조건 isnull은\N의 데이터를 찾았고 조건 = 은''의 데이터를 조회했다.
  5. Hive 하단에 빈 문자 '로 빈 값을 저장하려면 테이블을 만들 때 NULL DEFINED AS를 통해 테이블의 속성 값인 Serialization을 지정하거나 수정할 수 있습니다.null.format. 테이블을 작성할 때 빈 값을 인코딩하는 방법을 지정
CREATE EXTERNAL TABLE null_test(
c1 int,
c2 string,
c3 int
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
NULL DEFINED AS ''
LOCATION '/dianshang/asiainfo/null_test';

<aside> 💡 즉 정리하자면, 빈값인 경우를 null로 인지하여서 null로 저장하는 경우가 있다. 즉 빈칸과 null을 정확하게 식별하지 못하기 때문에 발생.

</aside>