自学内容网 自学内容网

hive切换表底层文件类型以及分隔符

1、改底层文件存储类型,但是一般只会在数据文件与期望类型一致的时候使用,比如load等方式时发现建表时没指定对这样的,因为这个语句不会更改具体的底层文件内容,只改元数据

ALTER TABLE 表名 SET FILEFORMAT 希望类型;

2、更改数据的分割符号,但是通常情况下有的表是不支持改动的,比如orc格式的表,除非你用的第三方软件,比如kyuubi,它在跑数据的时候就会想orc文件里面写分割符,奇奇怪怪的

 alter table 表名 set serdeproperties('serialization.format'='\t', 'field.delim'='\t');

改完之后查一下结果没问题就行

DESCRIBE FORMATTED tablename;

如果系列化类库没变过来的话用下面的语句改一下,比如text改orc

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';

或者orc改text

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';

原文地址:https://blog.csdn.net/dudadudadd/article/details/143562059

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!