数据湖探索 DLI-Spark开源命令支持说明

时间:2024-11-11 14:11:01

Spark开源命令支持说明

本章节介绍了目前 DLI 对开源的Spark SQL语法的支持情况。详细的语法、参数说明,示例等信息请参考Spark官方文档

表1 DLI 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;

支持

支持

support.huaweicloud.com/sqlref-spark-dli/dli_08_0477.html