Spark开源命令支持说明
本章节介绍了目前DLI对开源的Spark SQL语法的支持情况。详细的语法、参数说明,示例等信息请参考Spark官方文档。
功能描述 | 语法示例 | DLI Spark 2.4.5 | DLI Spark 3.3.1 |
|---|---|---|---|
创建数据库 | CREATE DATABASE testDB; | 支持 | 支持 |
创建DLI表 | create table if not exists testDB.testTable1( id int, age int, money double ); | 支持 | 支持 |
创建OBS表 | create table if not exists testDB.testTable2( id int, age int, money double ) LOCATION 'obs://bucketName/filePath' partitioned by (dt string) row format delimited fields terminated by ',' STORED as TEXTFILE; | 支持 | 支持 |
插入测试数据 | insert into table testDB.testTable2 values (1, 18, 3.14, "20240101" ), (2, 18, 3.15, "20240102" ); | 支持 | 支持 |
修改数据库属性 | ALTER DATABASE testDB SET DBPROPERTIES ('Edited-by' ='John'); | 不支持 | 不支持 |
修改数据库在OBS上的文件存放路径 | ALTER DATABASE testDB SET LOCATION 'obs://bucketName/filePath'; | 不支持 | 不支持 |
修改表名 | ALTER TABLE testDB.testTable1 RENAME TO testDB.testTable101; | 支持 | 支持 |
修改表的分区名 | ALTER TABLE testDB.testTable2 PARTITION ( dt='20240101') RENAME TO PARTITION ( dt='20240103'); 只支持OBS表的分区名,且OBS上的文件存储路径不会变。 | 支持 | 支持 |
添加列 | ALTER TABLE testDB.testTable1 ADD COLUMNS (name string); | 支持 | 支持 |
删除列 | ALTER TABLE testDB.testTable1 DROP columns (money); | 不支持 | 不支持 |
修改列名称 | ALTER TABLE testDB.testTable1 RENAME COLUMN age TO years_of_age; | 不支持 | 不支持 |
修改列注释 | ALTER TABLE testDB.testTable1 ALTER COLUMN age COMMENT "new comment"; | 不支持 | 支持 |
替换指定列 | ALTER TABLE testDB.testTable1 REPLACE COLUMNS (name string, ID int COMMENT 'new comment'); | 不支持 | 不支持 |
自定义表属性 | ALTER TABLE testDB.testTable1 SET TBLPROPERTIES ('aaa' ='bbb'); | 支持 | 支持 |
添加或修改表注释 | ALTER TABLE testDB.testTable1 SET TBLPROPERTIES ('comment' ='test'); | 支持 | 不支持 |
修改表的存储格式 | ALTER TABLE testDB.testTable1 SET fileformat csv; | 不支持 | 不支持 |
删除表属性 | ALTER TABLE testDB.testTable1 UNSET TBLPROPERTIES ('test'); | 支持 | 支持 |
删除表的注释 | ALTER TABLE testDB.testTable1 UNSET TBLPROPERTIES ('comment'); | 支持 | 支持 |
展示列信息 | DESCRIBE database_name.table_name col_name; 示例:DESCRIBE testDB.testTable1 id; | 支持 | 支持 |
展示列信息 | DESCRIBE table_name table_name.col_name; 示例:DESCRIBE testTable1 testTable1.id; 仅支持查看当前数据库下表的列信息。 | 支持 | 支持 |
返回查询语句的元数据信息 | DESCRIBE QUERY SELECT age, sum(age) FROM testDB.testTable1 GROUP BY age; | 不支持 | 支持 |
返回插入数据的元数据信息 | DESCRIBE QUERY VALUES(100, 10, 10000.20D) AS testTable1(id, age, money); | 不支持 | 支持 |
返回表的元数据信息 | DESCRIBE QUERY TABLE testTable1; | 不支持 | 支持 |
返回表中某列的元数据信息 | DESCRIBE FROM testTable1 SELECT age; | 不支持 | 支持 |
返回表的建表语句 | SHOW CREATE TABLE testDB.testTable1 AS SERDE; Spark 3.3.1 执行该语句时,仅适用于查询Hive表的建表语句。 | 不支持 | 支持 |
返回表的建表语句 | SHOW CREATE TABLE testDB.testTable1; | 支持 | 支持 |

