Apache spark SparkSQL-某些分区出现在HiveServer2中,但不是SparkSQL

Apache spark SparkSQL-某些分区出现在HiveServer2中,但不是SparkSQL,apache-spark,hadoop,amazon-s3,hive,apache-spark-sql,Apache Spark,Hadoop,Amazon S3,Hive,Apache Spark Sql,配置单元外部表指向S3上的文件,ddl包含按eod分区的子句。文件夹下有5个子文件夹,每个子文件夹下面有一个文件,用于不同的分区日期。即 eod=20180602/fileA eod=20180603/fileA eod=20180604/fileA eod=20180605/fileA eod=20180606/fileA Msck修复表在HiveServer2上运行 从HiveServer2(端口10000)上的tbl中选择不同的部分_dt将返回所有5个日期 但是,在SparkThrift

配置单元外部表指向S3上的文件,ddl包含按eod分区的子句。文件夹下有5个子文件夹,每个子文件夹下面有一个文件,用于不同的分区日期。即

eod=20180602/fileA
eod=20180603/fileA
eod=20180604/fileA
eod=20180605/fileA
eod=20180606/fileA
Msck修复表在HiveServer2上运行

从HiveServer2(端口10000)上的tbl中选择不同的部分_dt将返回所有5个日期

但是,在SparkThriftServer(即SparkSQL,端口10015)上从tbl中选择不同的部分只返回前2个日期

这怎么可能

即使在SparkThriftServer上运行msck修复,差异仍然存在


文件架构在所有日期都相同。(即每个文件都有相同数量/类型的列)

已解决,这8个受影响的表以前已缓存在sparksql中(即缓存表)。一旦我运行了
uncache table
所有分区都重新对齐了

我假设metastore是由Spark正确设置的?有任何链接指向我关于正确设置的吗?我没有。在Spark安装和配置单元客户端之间有一个配置单元站点XML文件,这两个配置单元站点是相同的。有趣的是,我们有大约2000张桌子,其中1992张还行。只有8个受影响的分区,在这8个分区中,一些分区显示,而另一些分区不显示