下面是我使用Spark SQL获取配置单元数据的python代码
warehouse_location = 'file:///path/to/warehouse'
spark = SparkSession \
.builder \
.config("spark.sql.warehouse.dir", warehouse_location) \
.enableHiveSupport() \
.getOrCreate()
spark.sql('select * from tbl where dt='A')
但Spark抛出了一个关于/path/to/warehoues/tbl/dt=B
的FileNotFound异常。实际上我创建了分区B并且有一些数据,然后我直接删除了目录B(没有删除分区B)。但是,如果我只在Hive中查询where dt='A'
,我认为我不会得到任何错误。不重要dt='B'
?
我没有看到有关Spark SQL的源代码,我猜Spark会扫描整个warehouse.dir
并推断架构,因此它会检查有效性。我可以将其静音吗?