语法总览
Spark 的
SHOW 命令是一组元数据只读查询,用于查看数据库、表、视图、分区、函数等对象的定义信息。核心命令如下:序号 | 命令 | 功能 |
1 | SHOW DATABASES | 列出服务器上的数据库 |
2 | SHOW TABLES | 列出库中的表 |
3 | SHOW VIEWS | 列出库中的视图 |
4 | SHOW COLUMNS | 列出表的所有列 |
5 | SHOW CREATE TABLE | 返回建表/建视图 DDL |
6 | SHOW PARTITIONS | 列出表的所有分区 |
7 | SHOW FUNCTIONS | 列出所有函数 |
8 | SHOW TBLPROPERTIES | 返回表的属性 |
9 | SHOW TABLE EXTENDED | 显示匹配正则的表信息 |
核心命令详情
1. SHOW DATABASES / SHOW SCHEMAS
功能描述
列出服务器上的数据库。支持可选的
LIKE 过滤。语法
SHOW { DATABASES | SCHEMAS } [ [ LIKE ] pattern ];
参数说明
参数 | 说明 |
DATABASES / SCHEMAS | 二者等价, SCHEMAS 是 SQL 标准写法 |
[ LIKE pattern ] | 可选,按模式过滤数据库名 |
示例
SHOW DATABASES;SHOW SCHEMAS;
2. SHOW TABLES
功能描述
列出当前数据库或指定数据库中的所有表。
语法
SHOW TABLES [ { IN | FROM } database_name ] [ [ LIKE ] pattern ];
参数说明
参数 | 说明 |
IN / FROM database_name | 指定数据库,省略则使用当前数据库 |
[ LIKE pattern ] | 可选,按模式过滤表名 |
示例
SHOW TABLES;SHOW TABLES IN default;
3. SHOW VIEWS
功能描述
列出当前数据库或指定数据库中的所有视图。
语法
SHOW VIEWS { IN | FROM } database_name [ [ LIKE ] pattern ];
参数说明
参数 | 说明 |
IN / FROM database_name | 指定数据库,省略则使用当前数据库 |
[ LIKE pattern ] | 可选,按模式过滤视图名 |
示例
-- 创建基础表和视图CREATE EXTERNAL TABLE sv_base_table (id INT, name STRING)USING PARQUET LOCATION 'cosn://<your_bucket_name>/test_show_views/sv_base_table';INSERT INTO sv_base_table VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie');CREATE VIEW sv_test_view AS SELECT * FROM sv_base_table WHERE id > 0;CREATE VIEW sv_extra_view AS SELECT name FROM sv_base_table WHERE id <= 2;SHOW VIEWS IN default;SHOW VIEWS IN default LIKE 'sv_test*';SELECT * FROM sv_test_view ORDER BY id;
4. SHOW COLUMNS
功能描述
列出表中的所有列。
语法
SHOW COLUMNS { IN | FROM } table_name [ { IN | FROM } database_name ];
参数说明
参数 | 说明 |
table_name | 目标表名 |
database_name | 可选,限定库名 |
示例
CREATE EXTERNAL TABLE show_col_t1 (id INT, name STRING, score DOUBLE,is_active BOOLEAN, created_at TIMESTAMP) USING PARQUETLOCATION 'cosn://<your_bucket_name>/test_show_columns/show_col_t1';INSERT INTO show_col_t1 VALUES (1, 'Alice', 95.5, true, current_timestamp());SHOW COLUMNS IN show_col_t1;SHOW COLUMNS FROM show_col_t1;SHOW COLUMNS IN default.show_col_t1;
5. SHOW CREATE TABLE
功能描述
返回创建给定表的
CREATE TABLE 语句或 CREATE VIEW 语句。语法
SHOW CREATE TABLE table_identifier;
参数说明
参数 | 说明 |
table_identifier | 表或视图名称,可加库名限定: [ database_name. ] table_or_view_name |
示例
CREATE EXTERNAL TABLE sct_t1 (id INT, name STRING)USING PARQUET LOCATION 'cosn:///<your_bucket_name>/test_show_create_table/sct_t1';INSERT INTO sct_t1 VALUES (1, 'Alice'), (2, 'Bob');SHOW CREATE TABLE sct_t1; -- 返回表的 DDLCREATE VIEW sct_v1 AS SELECT * FROM sct_t1;SHOW CREATE TABLE sct_v1; -- 返回 VIEW 的 DDL
6. SHOW PARTITIONS
功能描述
列出表的所有分区。支持按部分分区键过滤。
语法
SHOW PARTITIONS table_identifier [ partition_spec ];partition_spec:PARTITION ( partition_col_name = partition_col_val [ , ... ] )
参数说明
参数 | 说明 |
table_identifier | 目标分区表名称 |
partition_spec | 可选,指定部分分区键进行过滤 |
示例
-- 使用管理表创建二级分区表CREATE EXTERNAL TABLE sp_t1 (id INT, name STRING) PARTITIONED BY (dept STRING, year INT)STORED AS PARQUETLOCATION 'cosn:///<your_bucket_name>/test_show_partitions/sct_t1';INSERT INTO sp_t1 PARTITION(dept='eng',year=2024) VALUES (1,'Alice');INSERT INTO sp_t1 PARTITION(dept='sales',year=2024) VALUES (2,'Bob');INSERT INTO sp_t1 PARTITION(dept='eng',year=2025) VALUES (3,'Charlie');SHOW PARTITIONS sp_t1; -- 显示全部分区SHOW PARTITIONS sp_t1 PARTITION(dept='eng'); -- 按部分分区键过滤
7. SHOW FUNCTIONS
功能描述
列出所有函数,包括临时函数和内置函数。支持 LIKE 过滤。
语法
SHOW FUNCTIONS [ [ LIKE ] pattern ];
参数说明
参数 | 说明 |
[ LIKE pattern ] | 可选,按模式过滤函数名 |
示例
SHOW FUNCTIONS;SHOW FUNCTIONS LIKE 'abs';SHOW SYSTEM FUNCTIONS LIKE 'sum';
8. SHOW TBLPROPERTIES
功能描述
返回表的属性(TBLPROPERTIES),支持查询全部属性或指定单个属性值。
语法
SHOW TBLPROPERTIES table_identifier [ ( property_key ) ];
参数说明
参数 | 说明 |
table_identifier | 目标表名称 |
property_key | 可选,查询指定的单个属性键 |
示例
CREATE EXTERNAL TABLE stp_t1 (id INT, name STRING)USING PARQUETTBLPROPERTIES ('custom_key1' = 'custom_value1', 'custom_key2' = 'custom_value2')LOCATION 'cosn://<your_bucket_name>/test_show_tblproperties/stp_t1';SHOW TBLPROPERTIES stp_t1; -- 全部属性SHOW TBLPROPERTIES stp_t1 ('custom_key1'); -- 指定自定义属性SHOW TBLPROPERTIES stp_t1 ('transient_lastDdlTime'); -- 系统内置属性
9. SHOW TABLE EXTENDED
功能描述
显示匹配给定正则表达式的所有表的详细信息(包含 Schema、Location、Properties 等)。
语法
SHOW TABLE EXTENDED [ { IN | FROM } database_name ] LIKE 'pattern';
参数说明
参数 | 说明 |
IN / FROM database_name | 可选,限定数据库 |
'pattern' | 正则表达式或通配符模式,用于匹配表名 |
示例
CREATE EXTERNAL TABLE ste_test_tbl (id INT, name STRING, score DOUBLE) USING PARQUETLOCATION 'cosn://<your_bucket_name>/test_show_table_extended/ste_test_tbl'TBLPROPERTIES ('testPurpose' = 'showTableExtended');INSERT INTO ste_test_tbl VALUES (1, 'Alice', 95.5), (2, 'Bob', 88.0);SHOW TABLE EXTENDED LIKE 'ste_*'; -- 通配符匹配SHOW TABLE EXTENDED IN default LIKE 'ste_test_tbl'; -- 指定库 + 精确匹配