DESCRIBE TABLE
描述
DESCRIBE TABLE
语句返回表的元数据信息。
元数据信息包括列名、列类型和列注释。
可以选择指定分区规范或列名,以分别返回与分区或列相关的元数据。
语法
{ DESC | DESCRIBE } [ TABLE ] [ format ] table_identifier [ col_name ]
参数
format
指定描述输出格式。如果指定了
EXTENDED
或是FORMATTED
,则返回额外的元数据信息(如父数据库、所有者、访问时间等)。table_identifier
指定表名,可以选择性地用数据库名称限定。
语法:
[ database_name. ] table_name
col_name
一个可选参数,指定需要描述的列名。提供的列名可以是可选限定的。当前不允许指定嵌套列。
语法:
[ database_name. ] [ table_name. ] column_name
示例
-- 创建表 `customer`。假设当前数据库是 `salesdb`。
CREATE TABLE customer(
cust_id INT,
state VARCHAR(20),
name STRING COMMENT 'Short name'
);
INSERT INTO customer PARTITION (state = 'AR') VALUES (100, 'Mike');
-- 返回未限定的表 `customer` 的基本元数据信息
DESCRIBE TABLE customer;
+-----------------------+---------+----------+
| col_name|data_type| comment|
+-----------------------+---------+----------+
| cust_id| int| null|
| name| string|Short name|
| state| string| null|
+-----------------------+---------+----------+
-- 返回限定表 `salesdb.customer` 的基本元数据信息
DESCRIBE TABLE salesdb.customer;
+--------+-----------+----------+
|col_name| data_type| comment|
+--------+-----------+----------+
| cust_id| int| NULL|
| state|varchar(20)| NULL|
| name| string|Short name|
+--------+-----------+----------+
--返回扩展的元数据信息,包括父数据库、所有者、访问时间等
DESCRIBE TABLE EXTENDED customer;
+----------------------------+-------------------------------------------------+----------+
| col_name| data_type| comment|
+----------------------------+-------------------------------------------------+----------+
| cust_id| int| NULL|
| state| varchar(20)| NULL|
| name| string|Short name|
| | | |
|# Detailed Table Information| | |
| Catalog| spark_catalog| |
| Database| lyw_test| |
| Table| customer| |
| Created Time| Tue Oct 22 14:45:48 CST 2024| |
| Last Access| UNKNOWN| |
| Created By| Spark| |
| Type| EXTERNAL| |
| Provider| rain| |
| Table Properties|[tableToken=*********(redacted), tableType=table]| |
+----------------------------+-------------------------------------------------+----------+
-- 返回限定表 `salesdb.customer` 的 `name` 列的元数据信息
-- `TABLE` 子句是可选的,列是全限定的。
DESCRIBE customer salesdb.customer.name;
+---------+----------+
|info_name|info_value|
+---------+----------+
| col_name| name|
|data_type| string|
| comment|Short name|
+---------+----------+