在使用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部分信息如下

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐