如何检查impala表中是否存在列?

v1uwarro  于 2021-06-26  发布在  Impala
关注(0)|答案(2)|浏览(437)

我在 Impala 中创建了一个外部表。我正在编写一个shell脚本,用于检查该表中是否存在特定的列。
我们可以在mysql中使用以下查询来实现这一点。

SELECT * 
FROM information_schema.COLUMNS 
WHERE 
    TABLE_SCHEMA = 'db_name' 
    AND TABLE_NAME = 'table_name' 
    AND COLUMN_NAME = 'column_name'

但是,在 Impala ,我们如何才能做到这一点?

yks3o0rb

yks3o0rb1#

cloudera impala中有show语句:
show语句是一种获取不同类型的 Impala 对象信息的灵活方法。
对于您的用例,您可以使用show column stats语句,例如:

SHOW COLUMN STATS myTableName

它将返回以下信息:

+------------------------+--------+------------------+--------+----------+----------+
| Column                 | Type   | #Distinct Values | #Nulls | Max Size | Avg Size |
+------------------------+--------+------------------+--------+----------+----------+
| my_column_id           | INT    | -1               | -1     | 4        | 4        |
| my_string_column_name  | STRING | -1               | -1     | -1       | -1       |
| some_column_name       | INT    | -1               | -1     | 4        | 4        |
...
de90aj5v

de90aj5v2#

不幸的是,您不能在impala中查询模式元数据。你可以用 describe table (参见文档)并检查输出。

相关问题