SparkSQL-一些分区出现在HiveServer2中,但不出现在SparkSQL中

时间:2018-07-02 10:59:30

标签: apache-spark hadoop amazon-s3 hive apache-spark-sql

Hive外部表指向S3上的文件,ddl包含按eod子句进行分区。在一个文件夹下,有5个子文件夹,每个子文件夹下都有一个文件,用于不同的partition_date。即

eod=20180602/fileA
eod=20180603/fileA
eod=20180604/fileA
eod=20180605/fileA
eod=20180606/fileA

Msck修复表在HiveServer2上运行

从HiveServer2(端口10000)的tbl中选择不同的part_dt会返回所有5个日期

但是,从SparkThriftServer的tbl中选择不同的part_dt(即SparkSQL,端口10015)仅返回前两个日期。

这怎么可能?

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

文件模式在所有日期都是相同的。 (即每个文件具有相同数量/类型的列)

1 个答案:

答案 0 :(得分:1)

已解决,这8个受影响的表先前已缓存在sparksql中(即cache table <table>)。我运行uncache table <table>后,所有分区又重新排成一行!