配置过滤掉分区表中路径不存在的分区
操作场景
当读取Hive分区表时,如果指定的分区路径在HDFS上不存在,执行select查询时会报FileNotFoundException异常。为了避免这种情况,可以通过配置“spark.sql.hive.verifyPartitionPath”参数来过滤掉分区路径不存在的分区,来避免读取时报错。
配置描述
可以通过以下两种方式配置是否过滤掉分区表分区路径不存在的分区。
方式一:在客户端配置参数。
- 安装Spark客户端。
详细操作请参考安装MRS客户端。
- 使用客户端安装用户登录Spark客户端节点。
在Spark客户端的“{客户端安装目录}/Spark/spark/conf/spark-defaults.conf”配置文件中进行设置,修改如下参数:
表1 参数说明 参数
参数说明
取值示例
spark.sql.hive.verifyPartitionPath
配置读取Hive分区表时,是否过滤掉分区表分区路径不存在的分区。
- “true”:过滤掉分区路径不存在的分区。
- “false”:不进行过滤。
true
方式二:在spark-submit命令提交应用时,通过“--conf”参数配置是否过滤掉分区表分区路径不存在的分区。
spark-submit --class org.apache.spark.examples.SparkPi --conf spark.sql.hive.verifyPartitionPath=true $SPARK_HOME/lib/spark-examples_*.jar