1

在 spark 中,有没有办法通过提供 Timstamp 对象来获取分区路径,而不是提供分区键作为字符串?

我知道我们可以通过运行以下查询来获取分区路径:

val x = "date='2019-08-06 23:48:32.113'"
spark.sql(s"describe extended hospitaltest partition (${x})")

但上述查询需要将分区键作为字符串。

4

1 回答 1

0

我不知道它是否为 spark 正确编写了查询,但作为您问题的一部分,下一个查询从 hive 元存储(存储在 mysql 中)返回分区的位置:

SELECT 
      location 
    FROM 
      hive.DBS 
    LEFT JOIN hive.TBLS 
    ON 
      ( 
        DBS.DB_ID       = TBLS.DB_ID 
      AND upper(TBLS.tbl_name) = 'CG_CRDSTDLVRS_RAW' 
      ) 
    LEFT JOIN hive.PARTITIONS 
    ON 
      ( 
        TBLS.TBL_ID = PARTITIONS.TBL_ID 
      AND PARTITIONS.PART_NAME LIKE '%2018-09-15%' 
      ) 
    LEFT JOIN hive.SDS 
    ON 
      ( 
        PARTITIONS.SD_ID = SDS.SD_ID 
      ) 
    WHERE 
      upper(DBS.name)='RAW_FAT01'
于 2019-08-07T08:03:35.830 回答