sql—如何从给定时间戳对象作为分区键的配置单元元存储中获取分区路径

smdnsysy  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(453)

在spark中,有没有办法通过提供timstamp对象来获得分区路径,而不是将分区键作为字符串提供?
我知道我们可以通过运行以下查询来获取分区路径:

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

但是上面的查询需要分区键作为字符串。

vmjh9lq9

vmjh9lq91#

我不知道它为spark编写的查询是否正确,但作为问题的一部分,下一个查询将从hive metastore(存储在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'

相关问题