配置单元外部表指向s3上的文件,ddl包含按eod分区的子句。在一个文件夹下有5个子文件夹,每个子文件夹下面有一个不同分区日期的文件。ie公司
eod=20180602/fileA
eod=20180603/fileA
eod=20180604/fileA
eod=20180605/fileA
eod=20180606/fileA
msck修复表在hiveserver2上运行
在hiveserver2(端口10000)上从tbl中选择distinct part\u dt返回所有5个日期
但是,在sparkthriftserver(即sparksql,端口10015)上从tbl中选择distinct part_dt只返回前2个日期。
这怎么可能?
即使在sparkthriftserver上运行msck修复,差异仍然存在。
文件架构在所有日期都相同((每个文件的列数/类型相同)
1条答案
按热度按时间8nuwlpux1#
已解决,这8个受影响的表以前缓存在sparksql(即
cache table <table>
). 有一次我跑了uncache table <table>
所有的分区又排好了!