【问题标题】:How to use filter conditions on SHOW PARTITIONS clause on hive?如何在 hive 上的 SHOW PARTITIONS 子句上使用过滤条件?
【发布时间】:2019-06-17 05:48:06
【问题描述】:

我有按日期、app_name、src(3 个分区)分区的 hive 表

我想以多种方式触发 show partitions 命令,如下所示

// works
show partitions mydb.tab_dt partition(date='2017-05-01');

// works
show partitions mydb.tab_dt partition(date='2017-05-01'/app_name='app_io'/src='mobile');

当我需要在分区子句中进行一些过滤时,我无法使其工作。下面是我正在尝试的一些事情的示例。

// doesn't work
show partitions mydb.tab_dt partition(date>='2017-05-01');

// doesn't work
show partitions mydb.tab_dt partition(date='2017-05-01'/app_name like '%app%');

// doesn't work
show partitions mydb.tab_dt partition(app_name like '%app%'/src='mobile');

我希望我已经把我的问题说清楚了。

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

    目前看来这是不可能的,但是will be after Hive 4.0.0.

    文档here中描述了当前的可能性。

    但是,我最终做的是使用 hive -e 运行 SHOW PARTITIONS,然后使用 grep 过滤结果。

    【讨论】:

      【解决方案2】:

      要查找特定分区,您可以使用 hive shell 获取分区,然后使用 grep 提取特定分区。这对我很有效。

       hive -e 'show partitions db.tablename;' | grep 202101*
      
       hive -e 'show partitions db.tablename partition (type='abc');' | grep 202101*
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-30
        • 1970-01-01
        • 2019-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多