【问题标题】:How to select the last table from a list of hive tables?如何从配置单元表列表中选择最后一个表?
【发布时间】:2016-06-30 17:39:47
【问题描述】:

我有一个配置单元表列表,并且想要选择最后一个表来执行一些查询。 这是我用来获取类似配置单元表列表的方法。

show tables 'test_temp_table*';

显示如下结果

test_temp_table_1
test_temp_table_2
test_temp_table_3
test_temp_table_4
test_temp_table_5
test_temp_table_6

我需要在 test_temp_table_6 上运行一些查询。我可以使用 shell 脚本通过将输出写入临时文件并从中读取最后一个值来做到这一点,但是有没有一种简单的方法使用配置单元查询来获取最后一个具有最大数量的表?

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

    使用外壳:

    last_table=$(hive -e "show tables 'test_temp_table*';" | sort -r | head -n1)
    

    【讨论】:

      【解决方案2】:

      您实际上可以根据表名在 Hive 元存储上运行“选择查询”(然后使用 ORDER BY DESC 和 LIMIT 1 使用常规 sql 排序)而不是使用“SHOW TABLES”,遵循此处提到的方法:@ 987654321@

      【讨论】:

      • 应该对 Metastore 数据库(配置单元之外)运行“选择”查询,如我在答案中提供的链接中所述。例如:使用元存储;显示表格;从 TBLS 中选择 *;
      • @janeshs - 不是每个人都可以访问 hive 元存储。这个解决方案似乎不太实用。
      • @syadav - 是的,这种方法对一些人来说可能是实用的,而对另一些人来说可能不切实际,这取决于他们的访问级别。虽然它不是不正确的,因此它可能会在将来帮助其他人。
      猜你喜欢
      • 2021-12-23
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多