文档: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’;