Hive执行CREATE TABLE建表语句报ParseException语法错误如何解决
报错原因
你使用了Hive的保留关键字end作为字段名,Hive SQL解析时会优先识别为语法关键词,无法将其当作普通字段标识符处理,因此抛出字段定义处的解析异常。
解决方案
你可以根据业务需求选择任意一种调整方式:
方案1:修改为非语义冲突的字段名
把end字段改成和业务匹配的非保留字名称,比如你数据最后一列是部门编号,可以修改为dept_id,建表语句如下:
create table sample( id int, name string, dept string, pvsl float, nval float, dept_id int ) row format delimited fields terminated by ',';
方案2:用反引号包裹保留关键字强制作为字段名
如果必须保留end作为字段名,用反引号包裹该字段名即可让Hive将其识别为普通标识符:
create table sample( id int, name string, dept string, pvsl float, nval float, `end` int ) row format delimited fields terminated by ',';
数据导入操作
建表成功后,执行以下Hive命令导入本地emp90文件数据:
load data local inpath '/home/training/emp90' into table sample;
导入后可执行
select * from sample limit 10;验证数据是否正确加载。
内容的提问来源于stack exchange,提问作者jana
相关产品推荐
相关产品推荐

