显示最近创建的空表时在HIVE中出现“错误:列表索引超出范围”

问题描述

enter image description here

我正在使用虚拟盒来运行cloudera v5.4.2-0。 我按照在线课程的说明使用以下HIVEQL创建空表:

create table sales_all_years (RowID smallint,OrderID int,OrderDate date,OrderMonthYear date,Quantity int,Quote float,discountPct float,Rate float,SaleAmount float,CustomerName string,CompanyName string,Sector string,Industry string,City string,ZipCode string,State string,Region string,ProjectCompleteDate date,DaystoComplete int,ProductKey string,ProductCategory string,ProductSubCategory string,Consultant string,Manager string,HourlyWage float,RowCount int,WageMargin float)
partitioned by (yr int) -- partitioning
row format serde 'com.bizo.hive.serde.csv.CSVSerde'
stored as textfile;

我做了一些实验,意识到对表进行分区会导致错误,但我无法弄清原因。

P.S。我对此有些陌生。抱歉,如果是我的问题,格式可能有误

解决方法

问题可能出在com.bizo.hive.serde.csv.CSVSerde上。尝试用不同的SerDe创建表,例如

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = ",","quoteChar"     = "'","escapeChar"    = "\\"
)  
STORED AS TEXTFILE

或者只是带有相应分隔符的文本文件

ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE