我已将s3中的多个文件数据复制到一个带有位置的临时外部表中。现在我将相同的数据复制到另一个分区表中。在40-50%之后运行时显示低于错误..
我的查询(HUE-Impala):
Create table IF NOT EXISTS tbl_request_main (
a string,b int,c string)
PARTITIONED BY (year int,month int,day int)
STORED AS PARQUET;
Create table IF NOT EXISTS tbl_request_temp (
a string,b int,c string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n' STORED AS TEXTFILE
LOCATION 's3://request';
select * from tbl_request_temp; #No error..Getting Result
INSERT INTO tbl_request_main partition (year=2016,month=07,day=07) select * from tbl_request_temp;
错误!!
您的查询有以下错误:
请求1631的错误状态:TGetOperationStatusResp(status = TStatus(errorCode = None,errorMessage = None,sqlState = None,infoMessages = None,statusCode = 0),operationState = 5,errorMessage = None,sqlState = None,errorCode =无)
黑斑羚的问题是什么?
答案 0 :(得分:0)
默认情况下,Hive使用'\ 1'作为字段分隔符。您的主表是使用默认RAW FORMAT
创建的,它与临时表不同。您可以检查详细的表信息并比较两个表的field delimiter
(从hive shell运行)
DESCRIBE FORMATTED tbl_request_main
和DESCRIBE FORMATTED tbl_request_temp
因此两个表应该具有相同的ROW FORMAT
。重新创建tbl_request_main
,然后运行INSERT
语句。
Create table IF NOT EXISTS tbl_request_main (a string,b int,c string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
PARTITIONED BY (year int,month int,day int)
STORED AS PARQUET;
您可以升级impala以获取详细的错误消息 - HUE-2307