目录
一、orc格式修改为text
1.问题描述
2.表结构
3.报错内容
4.定位原因
5.解决办法
二、text格式修改为orc
一、orc格式修改为text
1.问题描述
一张orc格式的表,里面有几条数据,修改成text格式时报错。
代码语言:javascript复制--执行语句
alter table 表名 set fileformat parquet textfile;
--设置 INPUTFORMAT、OUTPUTFORMAT、SERDE
ALTER TABLE 表名 SET FILEFORMAT INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe';
2.表结构
3.报错内容
Error while compiling statement: FAILED: Execution Error, return code 40000 from org.apache.hadoop.hive.ql.ddl.DDLTask. Changing file format (from ORC) is not supported for table
4.定位原因
这个方法只支持原先是text格式的表转为orc格式,那只是修改了表属性,但文件存储格式还是text的,查询时会出现解析错误。
不支持从orc格式转为text格式。
5.解决办法
新建一张text格式表,将orc格式表数据插入进去,删除原表。
二、text格式修改为orc
代码语言:javascript复制--改变格式
alter table 表名 set fileformat orc;
--设置 INPUTFORMAT、OUTPUTFORMAT、SERDE
ALTER TABLE 表名 SET FILEFORMAT INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde';
--查看表结构
DESC formatted 表名;