页面树结构
转至元数据结尾
转至元数据起始

使用【数据模型-ETL高级查询】实现数据处理时,smartbi提供【元数据编辑节点】用于修改数据集中字段的一些属性,包括名称、别名、数据类型及字段顺序等。

但若实际数据分析场景中有更多较为灵活的数据类型转换场景,smartbi支持以下Spark SQL数据类型转换函数供数据分析人员使用。Spark SQL函数可在ETL功能的【派生列】【过滤】以及【SQL脚本】节点中使用。

序号

函数

描述

1bigint(expr) 

函数名称bigint(expr) 

函数说明将数据类型更改为bigint

bigint可以精确的表示从-2^63到2^63-1(即从-9,223,372,036,854,775,808到 9,223,372,036,854,775,807)之间的整数,它占用了八个字节的存储空间。】

示例:在数据模型-ETL高级查询中使用派生列节点,通过bigint函数转换字段数据类型。

2binary(expr)

函数名称binary(expr)

函数说明将数据类型更改为二进制

示例在数据模型-ETL高级查询中使用派生列节点,通过binary函数转换字段数据类型。

3boolean(expr) 

函数名称boolean(expr) 

函数说明将数据类型更改为布尔值

示例在数据模型-ETL高级查询中使用派生列节点,通过boolean函数转换字段数据类型,将数值1转换为Boolean类型。

4cast(expr AS type)

函数名称cast(expr AS type)

函数说明将数据类型更改为指定的类型

示例在数据模型-ETL高级查询中使用派生列节点,通过cast函数转换字段为指定的int数据类型,将字符串‘10’转换为int类型。

5date(expr)

函数名称date(expr)

函数说明将数据类型更改为日期

示例在数据模型-ETL高级查询中使用派生列节点,通过date函数转换字段数据类型,将字符串‘2023-01-01’转换为date日期类型。

6decimal(expr)

函数名称decimal(expr)

函数说明将数据类型更改为小数

示例在数据模型-ETL高级查询中使用派生列节点,通过decimal函数转换字段数据类型

7double(expr) 

函数名称double(expr) 

函数说明将数据类型更改为双精度类型

示例在数据模型-ETL高级查询中使用派生列节点,通过double函数转换字段数据类型

8float(expr)

函数名称float(expr)

函数说明将数据类型更改为浮点数

示例在数据模型-ETL高级查询中使用派生列节点,通过float函数转换字段数据类型

9int(expr)

函数名称int(expr)

函数说明将数据类型更改为int

示例在数据模型-ETL高级查询中使用派生列节点,通过int函数转换字段数据类型

10smallint(expr)

函数名称smallint(expr)

函数说明将数据类型更改为smallint

示例在数据模型-ETL高级查询中使用派生列节点,通过smallint函数转换字段数据类型

11str_to_map(text[, pairDelim[, keyValueDelim]]) 

函数名称str_to_map(text[, pairDelim[, keyValueDelim]]) 

函数说明从字符串创建映射,使用分隔符将文本拆分为“键/值”对后创建映射。对于 pairDelim,默认分隔符为 ',' ,对于 keyValueDelim,默认分隔符为 ':'。pairDelim 和 keyValueDelim 都被视为正则表达式。

示例1在数据模型-ETL高级查询中使用SQL脚本节点,通过str_to_map函数将字符串映射为键值对

示例2在数据模型-ETL高级查询中使用SQL脚本节点,通过str_to_map函数将字符串映射为键值对

12string(expr)

函数名称string(expr)

函数说明将数据类型更改为字符串

示例在数据模型-ETL高级查询中使用派生列节点,通过string函数转换字段数据类型

13struct(col1, col2, col3, ...) 

函数名称struct(col1, col2, col3, ...) 

函数说明创建结构

示例在数据模型-ETL高级查询中使用SQL脚本节点,通过struct函数将为一串数据创建结构

> SELECT struct(1, 2, 3); {"col1":1,"col2":2,"col3":3}

14tinyint(expr)

函数名称tinyint(expr)

函数说明将数据类型更改为tinyint

示例在数据模型-ETL高级查询中使用派生列节点,通过tinyint函数转换字段数据类型

  • 无标签