Hive更改输入输出文件格式

文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
ALTER TABLE table_name [PARTITION partitionSpec] SET FILEFORMAT file_format

分区和表都会存储了文件格式,都要改过来才正确。。

例子:

ALTER TABLE foo SET FILEFORMAT
INPUTFORMAT “com.hadoop.mapred.DeprecatedLzoTextInputFormat”
OUTPUTFORMAT “org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat”;

ALTER TABLE foo PARTITION (pt=’2013-06-04′) SET FILEFORMAT
INPUTFORMAT “com.hadoop.mapred.DeprecatedLzoTextInputFormat”
OUTPUTFORMAT “org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat”;

也可以直接改metastore数据库,但要注意hive服务端可能有cache(默认是开了level2 cache),不知道会不会影响。

更改SD表
UPDATE SDS SET INPUT_FORMAT=’com.hadoop.mapred.DeprecatedLzoTextInputFormat’;




fatkun

9条评论


You can leave the first : )



发表评论

电子邮件地址不会被公开。