Spark-sql 报错:org.apache.hadoop.mapred.InvalidInputException: Input path does not exist:
现象
spark-sql手动提交任务,报错提示Input path does not exist
PS:查资料过程中,有的用scala\java提交spark任务时,本应该读取HDFS路径,但是spark却读到了local path,有参数控制或者是dfs配置有操作,可以通过参数解决。
分析:
查tablename的hdfs路径,然后查看报错的分区\路径是否存在
desc formatted table_name;
dfs -ls ;
发现spark报错的路径不存在
原因&解决
平时新增数据都是msck repair table_name更新分区,对于历史数据的清理,都是直接操作hdfs路径\文件,没有进行hive元数据清理,导致hive中仍然存储此路径,但是实际文件已不在。
可以alter table test drop partition 手工管理hive元数据,保证spark读取到及时更新的分区。