나는 똑같은 문제를 겪었습니다. 이는 Hue가 64MB 제한이있는 웹 인터페이스를 통해 파일을 가져 오는 방법과 관련된 문제입니다.
필자는 Hive CLI와 DDL 코드가있는 텍스트 파일에 대해 -f 플래그를 사용하여 큰 데이터 세트를 가져 왔습니다.
예 :
가
hive -f beer_data_loader.hql
beer_data_loader.hql :
CREATE DATABASE IF NOT EXISTS beer
COMMENT "Beer Advocate Database";
CREATE TABLE IF NOT EXISTS beer.beeradvocate_raw(
beer_name STRING,
beer_ID BIGINT,
beer_brewerID INT,
beer_ABV FLOAT,
beer_style STRING,
review_appearance FLOAT,
review_aroma FLOAT,
review_palate FLOAT,
review_taste FLOAT,
review_overall FLOAT,
review_time BIGINT,
review_profileName STRING,
review_text STRING
)
COMMENT "Beer Advocate Data Raw"
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS parquet;
CREATE EXTERNAL TABLE IF NOT EXISTS beer.beeradvocate_temp(
beer_name STRING,
beer_ID BIGINT,
beer_brewerID INT,
beer_ABV FLOAT,
beer_style STRING,
review_appearance FLOAT,
review_aroma FLOAT,
review_palate FLOAT,
review_taste FLOAT,
review_overall FLOAT,
review_time BIGINT,
review_profileName STRING,
review_text STRING
)
COMMENT "Beer Advocate External Loading Table"
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
LOCATION '/user/name/beeradvocate.data';
INSERT OVERWRITE TABLE beer.beeradvocate_raw SELECT * FROM beer.beeradvocate_temp;
DROP TABLE beer.beeradvocate_temp;
로드하기 전에 CSV 파일이 이미 잘 렸습니까? – Romain
아니요. 지금까지 필자는 임팔라를 통해 표를 생성하고 거기에서로드하는 방법을 찾았습니다. 그러나이 경우 필자가 가지고있는 140 개의 모든 열을 포함하여 create table 문을 지정해야합니다. create table (A 문자열, B int 등)과 같은 것입니다. 이것은 관리하기에 고통 스럽습니다. 그래서 저는보다 자동화 된 솔루션을 찾고있었습니다. – bobo32