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

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’)

相关文章

1.SparkStreaming是什么?SparkStreaming是SparkCore的扩展A...
本篇内容介绍了“Spark通讯录相似度计算怎么实现”的有关知识...
本篇文章给大家分享的是有关如何进行Spark数据分析,小编觉得...
本篇内容主要讲解“Spark Shuffle和Hadoop Shuffle有哪些区别...
这篇文章主要介绍“TSDB的数据怎么利用Hadoop/spark集群做数...
本篇内容介绍了“Hadoop与Spark性能原理是什么”的有关知识,...