Spark读取Hive分区表出现Input path does not exist的问题!!!

半城伤御伤魂 提交于 2019-11-27 02:23:23

问题详情

Hive读取正常,不会报错,Spark读取数据就会出现报错信息:

org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://testcluster/user/hive/warehouse/....

然后我们去查看一下 表数据的具体在hdfs上的存储路径,去hdfs上查看,发现文件确实不存在!

问题解决

我是在清理历史数据的时候 手动删除数据了 但是没有删除数据分区信息。导致spark找不到。
在hive中执行 show partitions test,查看test表对应的所有分区。
Spark加载hive分区表数据会根据show partitions中的分区去加载,发现目录缺失就会出错了。
只需要删除分区就可以了
alter table TableName drop partition (p=‘xxx’)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!