代码之家  ›  专栏  ›  技术社区  ›  tooptoop4

sparksql-某些分区出现在hiveserver2中,但不出现sparksql

  •  0
  • tooptoop4  · 技术社区  · 6 年前

    Hive外部表指向S3上的文件,DDL包含由EOD子句分区的文件。在一个文件夹下有5个子文件夹,每个子文件夹下面都有一个文件,用于不同的分区日期。工业工程

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

    msck修复表在hiveserver2上运行

    在hiveserver2(端口10000)上选择distinct part_dt from tbl返回所有5个日期

    但是,在SparkThriftServer(即SparkSQL,端口10015)的tbl中选择distinct part_dt只返回前2个日期。

    这怎么可能?

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   tooptoop4    6 年前

    已解决,这8个受影响的表以前缓存在sparksql中(即 cache table <table> )。我跑过一次 uncache table <table> 所有分区又排好了!