하이브에서 같은 파티션 테이블을 선택하여 열 값을 덮어 쓰는 방법.하이브의 파티션 테이블에서 다른 열을 선택하여 열 값을 덮어 쓰는 방법
I 쿼리
CREATE TABLE user (fname string,lname string) partitioned By (day int);
아래 실행하여 테이블을 생성하고 난 테이블에 데이터를 삽입 한 후에 데이터를 삽입한다. 나는 다음과 같은 선택 쿼리 실행 : 내가 추가 쿼리 아래의 도움으로,
AA AA 20170201
BB BB 20170201
CC CC 20170201
DD DD 20170202
EE EE 20170203
내 요구 사항에 따라, 내 테이블에 하나 더 열을 추가 할
(사용자).ALTER TABLE user ADD COLUMNS (day2 int);
열을 추가 한 후, 내 표는 내가 같은 테이블을 원하는
AA AA NULL 20170201
BB BB NULL 20170201
CC CC NULL 20170201
DD DD NULL 20170202
EE EE NULL 20170203
이하 그러나처럼 보인다.
AA AA 20170201 20170202
BB BB 20170201 20170202
CC CC 20170201 20170202
DD DD 20170202 20170202
EE EE 20170203 20170203
그래서 나는
insert overwrite table user partition (day)
select
fname,
lname,
day as day2,
case
when day <= 20170202 then 20170202
when day > 20170202 then day
end as day
from user;
나는 실행 한 선택 쿼리 결과는
select * from user;
아래처럼 쿼리 아래 실행 :
AA AA NULL 20170201
BB BB NULL 20170201
CC CC NULL 20170201
AA AA NULL 20170202
BB BB NULL 20170202
CC CC NULL 20170202
DD DD NULL 20170202
EE EE NULL 20170203
왜 내가 널 (null) 값을 얻고있다 . 제발 날 시켜줘. 오래된 파티션 스키마 업데이트를받지 못했을 수 있습니다 level.So 나는 놓쳤다 아는, 분할 하이브 테이블의 동작에 따라 this.i.e
AA AA 20170201 20170202
BB BB 20170201 20170202
CC CC 20170201 20170202
DD DD 20170202 20170202
EE EE 20170203 20170203