对象创建与变更

新建列

列新建与拆分

Column 语法

column colName as { SelectExpr } [for viewName]

-- 修改主视图
column `地址` as { concat(,,) };
-- 修改订单视图
column `地址` as { concat(,,) } for `订单`;
column `发货日期` as { add_months('2016-08-31', 1) } for `订单`;

其中 [for viewName] 表示在哪一个视图上新建与拆分列。

重要

列的新建与拆分离不开大量功能丰富的函数辅助,请参考 SQL 内置函数

修改列类型

批量修改列类型

Type 语法

type col1,col2,col3, ... [列数据类型] [精度/格式] [for viewName]

type col1 double 4;
type col2 date 'dd-MM-yyyy';

其中 [for viewName] 表示在哪一个视图上进行列类型修改。

支持的列数据类型有:

类型

名称

格式

decimal

精准数据类型

可指定精度

double

双精度浮点型

可指定精度

float

浮点型

可指定精度

byte

字节类型

integer

整型

long

长整型

short

短整型

boolean

布尔类型

date

日期类型

可指定日期格式,如: ‘yyyy-MM-dd’

timestamp

时间戳类型

可指定时间戳格式,如:’yyyy-MM-dd hh:mm:ss’

string

字符串类型

缺失值填充

通常,在缺失部分数据的情况下,只要数据量足够大,我们可以将含有缺失值的样本删掉,并且不会对结果产生太大影响。但是,在「样本量小」和「缺失数据多」的情况下,我们简单的删掉数据,会损失较多的信息,并且使得结果有偏。

Fill 语法

fill [viewName] col1,col2,col3,.. [填充方式]

fill price 5.5;
-- 默认使用 0 填充 price 列的缺失值
fill price;

[viewName] 表示在哪一个视图上进行数据填充操作。

填充方式说明:

方式

作用

number

任意数字填充

avg

使用填充列的平均值填充

min

使用填充列的最小值填充

max

使用填充列的最大值填充

创建临时视图

创建一张空的临时视图

警告

structaddupdatedel 建议小数据量下使用,因为所有操作都在本机进行(不支持分布式),且数据在内存中交换,不会被持久化,直到调用 save 表达式。

适用于需构造特殊数据视图来达到数据分析与可视化的场景。

Struct 语法

struct viewName as col1 [列类型], col2 [列类型], ..
-- 默认字符串类型
struct someName as col1, col2 long;

支持的列类型有:

类型

名称

decimal

精准数据类型

double

双精度浮点型

float

浮点型

byte

字节类型

integer

整型

long

长整型

short

短整型

boolean

布尔类型

date

日期类型

timestamp

时间戳类型

string

字符串类型

添加数据行

向临时视图追加一条记录

Add 语法

add [viewName] col1=value1, col2=value2, ..

add col1=1, col2='2020-12-12';

修改数据行

根据条件修改记录

Update 语法

update [viewName] col1=value1, col2=value2, .. { WhereSQL }
-- 批量修改价格
update price=10.2 { name='orange' and place='GuangDong' };

删除数据行

根据条件删除记录

Del 语法

del [viewName] { WhereSQL }
-- 批量删除记录
del { (name='orange' and place='GuangDong') or name='apple' };