使用【数据模型-ETL高级查询】实现数据处理时,smartbi提供【元数据编辑节点】用于修改数据集中字段的一些属性,包括名称、别名、数据类型及字段顺序等。但若实际数据分析场景中有更多较为灵活的数据类型转换场景,smartbi支持以下Spark SQL数据类型转换函数供数据分析人员使用。Spark SQL函数可在ETL功能的【派生列】、【过滤】以及【SQL脚本】节点中使用。
序号 | 函数 | 描述 |
---|---|---|
1 | bigint(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函数转换字段数据类型。 |
2 | binary(expr) | 函数名称:binary(expr) 函数说明:将数据类型更改为二进制。 示例:在数据模型-ETL高级查询中使用派生列节点,通过binary函数转换字段数据类型。 |
3 | boolean(expr) | 函数名称:boolean(expr) 函数说明:将数据类型更改为布尔值。 示例:在数据模型-ETL高级查询中使用派生列节点,通过boolean函数转换字段数据类型,将数值1转换为Boolean类型。 |
4 | cast(expr AS type) | 函数名称:cast(expr AS type) 函数说明:将数据类型更改为指定的类型。 示例:在数据模型-ETL高级查询中使用派生列节点,通过cast函数转换字段为指定的int数据类型,将字符串‘10’转换为int类型。 |
5 | date(expr) | 函数名称:date(expr) 函数说明:将数据类型更改为日期。 示例:在数据模型-ETL高级查询中使用派生列节点,通过date函数转换字段数据类型,将字符串‘2023-01-01’转换为date日期类型。 |
6 | decimal(expr) | 函数名称:decimal(expr) 函数说明:将数据类型更改为小数。 示例:在数据模型-ETL高级查询中使用派生列节点,通过decimal函数转换字段数据类型。 |
7 | double(expr) | 函数名称:double(expr) 函数说明:将数据类型更改为双精度类型。 示例:在数据模型-ETL高级查询中使用派生列节点,通过double函数转换字段数据类型。 |
8 | float(expr) | 函数名称:float(expr) 函数说明:将数据类型更改为浮点数。 示例:在数据模型-ETL高级查询中使用派生列节点,通过float函数转换字段数据类型。 |
9 | int(expr) | 函数名称:int(expr) 函数说明:将数据类型更改为int。 示例:在数据模型-ETL高级查询中使用派生列节点,通过int函数转换字段数据类型。 |
10 | smallint(expr) | 函数名称:smallint(expr) 函数说明:将数据类型更改为smallint。 示例:在数据模型-ETL高级查询中使用派生列节点,通过smallint函数转换字段数据类型。 |
11 | str_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函数将字符串映射为键值对。 |
12 | string(expr) | 函数名称:string(expr) 函数说明:将数据类型更改为字符串。 示例:在数据模型-ETL高级查询中使用派生列节点,通过string函数转换字段数据类型。 |
13 | struct(col1, col2, col3, ...) | 函数名称:struct(col1, col2, col3, ...) 函数说明:创建结构。 示例:在数据模型-ETL高级查询中使用SQL脚本节点,通过struct函数将为一串数据创建结构。 > SELECT struct(1, 2, 3); {"col1":1,"col2":2,"col3":3} |
14 | tinyint(expr) | 函数名称:tinyint(expr) 函数说明:将数据类型更改为tinyint。 示例:在数据模型-ETL高级查询中使用派生列节点,通过tinyint函数转换字段数据类型。 |