我有一个Dataframe,我正在使用它插入到一个使用sparksql(使用动态分区)的现有分区配置单元表中。一旦dataframe被写入,我想知道dataframe刚刚在hive中创建的分区是什么。
我可以在dataframe中查询不同的分区,但这需要很长时间,因为它必须启动dataframe的整个沿袭。
我可以在写入配置单元之前保存Dataframe,这样,写入操作和disctinct partition\u column操作就发生在缓存的Dataframe之上。但是我的Dataframe非常大,不想花更多的时间在持久化上。
我知道所有的分区信息都存储在hivemetastore中。spark中是否有任何元存储API可以帮助仅检索已创建的新分区?
2条答案
按热度按时间cld4siwp1#
可以使用hivemetastoreclient检索表的分区数据:
wfauudbj2#
在大多数情况下,lastaccesstime为0。createtime具有创建分隔符的时间。但是在parameters中,我发现了一个新的param.u lastdltime,它包含分区的更新时间戳。更安全的一点是,检查所有三个分区,以获得在给定的epoch时间之后创建或修改的分区。