在使用hive表时候,我们可能会导入一些txt、csv等文本格式的数据,这时候如果表格式不是文本格式就会报错,继续导入就需要转换了
一、textfile转orc格式
1、改变格式
ALTER TABLE dev.dev_yhzz_pop_bill SET FILEFORMAT ORC;
或者分别设置 INPUTFORMAT、OUTPUTFORMAT、SERDE
ALTER TABLE dev.dev_yhzz_pop_bill 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、改变字段序列化分割与字段分隔符(若不是\t,需设置下)
alter table dev.dev_yhzz_pop_bill set serdeproperties('serialization.format'='\t', 'field.delim'='\t');
二、orc转textfile格式
1、改变格式
ALTER TABLE dev.dev_yhzz_pop_bill SET FILEFORMAT textfile;
或者分别设置 INPUTFORMAT、OUTPUTFORMAT、SERDE
ALTER TABLE dev.dev_yhzz_pop_bill 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 dev.dev_yhzz_pop_bill
schema部分信息如下