[HADOOP] 하이브에 외부 테이블이있는 배열 열 유형을 지원하는 가장 좋은 방법은 무엇입니까?
HADOOP하이브에 외부 테이블이있는 배열 열 유형을 지원하는 가장 좋은 방법은 무엇입니까?
그래서 탭으로 구분 된 데이터의 외부 테이블이 있습니다. 간단한 테이블은 다음과 같습니다.
create external table if not exists categories
(id string, tag string, legid string, image string, parent string, created_date string, time_stamp int)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION 's3n://somewhere/';
이제 다른 필드를 끝에 추가하고 쉼표로 구분 된 값 목록이됩니다.
필드 종결자를 지정하는 것과 같은 방식으로 이것을 지정하는 방법이 있습니까? 아니면 serdes 중 하나에 의존해야합니까?
예 :
...list_of_names ARRAY<String>)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ARRAY ELEMENTS SEPARATED BY ','
...
(나는 이것을 위해 serde를 사용해야한다고 가정하고 있지만, 묻는 데 아무런 해가 없다는 것을 알았습니다)
해결법
-
==============================
1.어떻게 할 기존 테이블을 업데이트 할 수 있지만 테이블을 만드는 방법을 모르겠다; 원하는 내용은 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL에서 자세히 볼 수 있습니다. 거기에서 발췌 문장
어떻게 할 기존 테이블을 업데이트 할 수 있지만 테이블을 만드는 방법을 모르겠다; 원하는 내용은 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL에서 자세히 볼 수 있습니다. 거기에서 발췌 문장
row_format : DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char] [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
테이블 생성의 예는 다음과 같습니다.
CREATE TABLE IF NOT EXISTS visits ( ... Columns Removed... ) PARTITIONED BY (userdate STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' COLLECTION ITEMS TERMINATED BY '\002' MAP KEYS TERMINATED BY '\003' STORED AS TEXTFILE ;
배열에서 char로 채워지는 컬렉션 항목이 찾고자하는 라인입니다.
hth
from https://stackoverflow.com/questions/6270084/whats-the-best-way-to-support-array-column-types-with-external-tables-in-hive by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 하이브에서 지원되지 않는 중첩 하위 쿼리 (0) | 2019.08.06 |
---|---|
[HADOOP] AWS의 EMR 및 EC2 / Hadoop (0) | 2019.08.06 |
[HADOOP] 단일 시스템의 Hadoop에서 데이터 노드 실패 (0) | 2019.08.06 |
[HADOOP] 왜 하이브에서 텍스트 파일 형식에 비해 마루가 느려 집니까? (0) | 2019.08.06 |
[HADOOP] 돼지의 group_concat? (0) | 2019.08.06 |