2014-02-13 3 views
1

모든 설정을 죄송합니다. 이것은 하이브 데이터 유형 및 주석 질문입니다.CTAS가있는 apache hive 열 주석

HDFS에는 4 세트의 테이블 데이터가 결합 된 파일 하나가 있습니다. 데이터를 사전에 차단하는 것이 내가 선호하는 방법이 아닙니다. 제 4 행은 열 헤더 지정

* 1 COL1, COL2, COL3 * 2 콜라 COLB, COLC, 감기, col5e을 등등 ....

데이터 열은 위치 번호와 일치 시작 1 헤더. 등

데이터 1, 데이터, 데이터 2 데이터, 데이터, 데이터, 데이터, 데이터, ...

베이스 하이브 테이블 바로 col0 인 - 원시 파일 col60. CTAS 테이블을 만들어 "1"열과 "2"열의 데이터 형식 및 설명을 모두 저장할 수 있습니다. 열 이름이 다양하기 때문에 기본 테이블에서 열 이름을 지정할 수도없고 열 기반 메타 데이터로 열 이름을 주석으로 지정할 수도 없습니다.

이 DDL은 작동하지 않았지만 내가하고 싶은 것을 보여줍니다. 이견있는 사람 ?

CREATE TABLE foo (
col1 as meaningful_name string comment 'meaningful comment') 
as 
SELECT col1 
FROM base_hive table 
WHERE col1 = 1; 

CREATE TABLE foo 
as 
SELECT col1 string comment 'meaningful comment' 
FROM base_hive table 
WHERE col1 = 1; 

감사 TD 난 당신이 여기에 달성하기 위해 노력하고 있지만 DDL을 찾고 있습니다 많은 이해 해달라고

답변

1

, 나는 몇 가지 오류를 볼 수 있습니다. 올바른 CREATE TABLE AS SELECT 구현을 위해, PL DDL 아래를 사용 답장을

CREATE TABLE foo ( col1 STRING COMMENT 'meaningful comment') AS SELECT col1 AS meaningful_name FROM base_hive table WHERE col1 = 1;

+0

감사합니다. 나는 전에 그 구문을 시도했다. "CREATE TABLE AS SELECT 명령이 목표 테이블에 대한 열 목록을 지정할 수 없습니다"오류가 발생합니다. 나는 그것이 작동하도록하는 방법을 발견했다. 컬럼 별명으로 테이블을 작성한 후 ALTER TABLE CHANGE COLUMN을 실행하여 데이터 유형 및 주석을 추가하십시오. – todwith1d

관련 문제