在 spark 中,有没有办法通过提供 Timstamp 对象来获取分区路径,而不是提供分区键作为字符串?
我知道我们可以通过运行以下查询来获取分区路径:
val x = "date='2019-08-06 23:48:32.113'"
spark.sql(s"describe extended hospitaltest partition (${x})")
但上述查询需要将分区键作为字符串。
在 spark 中,有没有办法通过提供 Timstamp 对象来获取分区路径,而不是提供分区键作为字符串?
我知道我们可以通过运行以下查询来获取分区路径:
val x = "date='2019-08-06 23:48:32.113'"
spark.sql(s"describe extended hospitaltest partition (${x})")
但上述查询需要将分区键作为字符串。
我不知道它是否为 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'