版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Koprvhdix/article/details/79741845
解决方案写在前面:alter table xxxx set fileformat parquet
因为同事升级Spark时出的bug,误以为需要修改 Hive Metastore 的记录。然后历程比较坎坷,所以记录一下
Spark 1.6.2 创建分区表时,在 Hive Metastore 里记录的是
# Storage Information
InputFormat: org.apache.hadoop.mapred.SequenceFileInputFormat
OutputFormat: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
需要修改为 parquet 格式。找了老多blog,很多只记录了如何修改SerDe Library,没有说怎么修改InputFormat,最后从 Hive 的 jira(HIVE-6756) 里获得启发。应该修改 table 的 fileformat。再结合 抛砖引玉的blog 。每个分区都应该修改 fileformat。
最后是两种方案:一种是用 2.2 把分区表全表重建一遍。还有一种是每个分区都去修改 fileformat。
路漫漫其修远兮,加油加油!