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; |
支持 |
支持 |