1、场景描述
Spark.saveAsTable写入hive 任务突然失败,由于hive 通过命令行新加字段
alter table XXXX add
导致之后的spark任务出错。
2、问题定位
查看建表语句
show create table test_snappy;
发现前后字段不一致,spark.sql.sources.schema.part.0 缺少新增字段信息
hive shell截图.png
3、解决思路
通过修改hive 元数据表中的schema 使前后字段信息保持一直。
4、hive的元数据表mysql 关联的表
//通过 tbls 查找TBL_ID
select * from tbls where TBL_NAME='test_snappy';
//通过 table_params 查找 对应的schema 信息
select * from table_params where TBL_ID=502 and PARAM_KEY='spark.sql.sources.schema.part.0';
//通过 修改schema ,把缺少的字段按照格式添加进去即可。
UPDATE table_params
set
PARAM_VALUE='............'
where TBL_ID=502 and PARAM_KEY='spark.sql.sources.schema.part.0'
4、反思