[HADOOP] 외부 테이블 하이브 만들기, 위치에 여러 파일이 있습니다.
HADOOP외부 테이블 하이브 만들기, 위치에 여러 파일이 있습니다.
CREATE EXTERNAL TABLE IF NOT EXISTS LOGS (LGACT STRING,NTNAME STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/user/hive/warehouse/LOGS/test';
'test'폴더 아래에 매일 파일을 쓰고 있습니다. 예 :
/user/hive/warehouse/LOGS/test/20170420
/user/hive/warehouse/LOGS/test/20170421
/user/hive/warehouse/LOGS/test/20170422
내가 만든 LOGS 테이블 안의 어떤 데이터도 볼 수 없다.
하지만, 나는
LOCATION '/user/hive/warehouse/LOGS/test/20170422';
그 날 기록을 볼 수 있습니다.
내 HIVE 테이블에있는 / test 디렉토리 아래의 모든 데이터를보고 싶고 / test 디렉토리에도 매일 새 파일이 채워집니다.
해결법
-
==============================
1.옵션 1
옵션 1
하위 디렉토리를 지원하려면
set mapred.input.dir.recursive=true;
하이브 버전이 2.0.0보다 낮 으면
set hive.mapred.supports.subdirectories=false;
옵션 2
분할 된 테이블 만들기
CREATE EXTERNAL TABLE IF NOT EXISTS LOGS (LGACT STRING,NTNAME STRING) partitioned by (dt date) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION '/user/hive/warehouse/LOGS/test';
alter table LOGS add if not exists partition (dt=date '2017-04-20') LOCATION '/user/hive/warehouse/LOGS/test/20170420'; alter table LOGS add if not exists partition (dt=date '2017-04-21') LOCATION '/user/hive/warehouse/LOGS/test/20170421'; alter table LOGS add if not exists partition (dt=date '2017-04-22') LOCATION '/user/hive/warehouse/LOGS/test/20170422';
디렉토리 규칙을 사용하여 디렉토리를 관리하면 관리가 더 쉬울 것입니다. 20170420 대신 dt = 2017-04-20
-
==============================
2.기본적으로 하이브는 외부 테이블의 지정된 위치에있는 파일 (디렉토리 아님) 만 읽습니다. 디렉토리를 추가하려면 다음 매개 변수를 설정하십시오.
기본적으로 하이브는 외부 테이블의 지정된 위치에있는 파일 (디렉토리 아님) 만 읽습니다. 디렉토리를 추가하려면 다음 매개 변수를 설정하십시오.
set mapred.input.dir.recursive = true;
from https://stackoverflow.com/questions/44338856/create-external-table-hive-location-contains-multiple-files-inside by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop Directory with Spaces (0) | 2019.07.01 |
---|---|
[HADOOP] 실패를 너무 많이 가져옵니다. (0) | 2019.07.01 |
[HADOOP] Custom Mapper and Reducer 대 HiveQL (0) | 2019.07.01 |
[HADOOP] SQLClient에서는 하이브 테이블에 액세스하지만 퍼티에서는 액세스하지 않습니다. (0) | 2019.07.01 |
[HADOOP] Hadoop 2 IOException - 가정 된 캐시 파일을 열려고 할 때만 (0) | 2019.07.01 |