【问题标题】:Look for tables which contain at least one column name that matches a regular expression [closed]查找包含至少一个与正则表达式匹配的列名的表[关闭]
【发布时间】:2018-08-22 16:09:57
【问题描述】:

在 Hive 中,我们可以使用以下命令来查找名称与给定正则表达式模式匹配的表:

hive> show tables like 'regex_pattern';

我正在尝试搜索包含至少一个名称与给定正则表达式模式匹配的列的所有表。是否可以?我该怎么做?

【问题讨论】:

  • 备案*customer*不是一个有效的正则表达式
  • 我告诉你你使用的是 not regular expression,它是某种全局语法,但它是 not @ 987654322@ 语法,所以它不是一个正则表达式。尝试将它放在任何正则表达式网站中,如regex101.com 并使其工作,我可以为您节省一些时间,但它不会。所以不管它是什么,它不是一个正则表达式。

标签: hive hiveql


【解决方案1】:

您可以使用 DESCRIBE 命令在 HIVE 表中查找列,如下所示:

hive> DESCRIBE <table name>

替代方案:

hive> SHOW COLUMN STAT <table name>

此命令将列出所有列。接下来你可以使用 Unix shell 来输入 count 命令并进行相应的过滤

$ hive -e 'DESCRIBE <table name>' | grep "your match string" 

循环查找所有表列表并将其存储在某个输出文件中。

希望这会有所帮助:)

【讨论】:

  • 谢谢,这对于搜索几个表很有用,因为我们需要为每个表运行hive -e ...(对于很多表可能需要一些时间)。
  • 其实我已经找到了一个表,它保存了其他 hive 表中的元数据,所以我们只需要在那里运行一个查询。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
  • 2017-10-01
  • 2011-12-06
  • 2022-01-15
  • 2013-05-29
  • 1970-01-01
相关资源
最近更新 更多