更新时间:2023-04-13 GMT+08:00
string_split
string_split函数,根据指定的分隔符将目标字符串拆分为子字符串,并返回子字符串列表。
语法说明
string_split(target, separator)
参数 |
数据类型 |
说明 |
---|---|---|
target |
STRING |
待处理的目标字符串。
说明:
|
separator |
VARCHAR |
指定的分隔符,当前仅支持单字符分割。 |
示例
- 参考Kafka源表和Print结果表创建flink opensource sql作业,输入以下作业运行脚本,提交运行作业。
注意:创建作业时,在作业编辑界面的“运行参数”处,“Flink版本”选择“1.12”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。如下脚本中的加粗参数请根据实际环境修改。
CREATE TABLE kafkaSource ( target STRING, separator VARCHAR ) WITH ( 'connector' = 'kafka', 'topic' = 'KafkaTopic', 'properties.bootstrap.servers' = 'KafkaAddress1:KafkaPort,KafkaAddress2:KafkaPort', 'properties.group.id' = 'GroupId', 'scan.startup.mode' = 'latest-offset', "format" = "json" ); CREATE TABLE printSink ( target STRING, item STRING ) WITH ( 'connector' = 'print' ); insert into printSink select target, item from kafkaSource, lateral table(string_split(target, separator)) as T(item);
- 连接Kafka集群,向Kafka的topic中发送如下测试数据:
{"target":"test-flink","separator":"-"} {"target":"flink","separator":"-"} {"target":"one-two-ww-three","separator":"-"}
即数据如下:
表2 测试源表数据和分隔符 target(STRING)
separator (VARCHAR)
test-flink
-
flink
-
one-two-ww-three
-
- 查看输出结果。
- 方法一:
- 登录DLI管理控制台,选择“作业管理 > Flink作业”。
- 在对应Flink作业所在行的“操作”列,选择“更多 > FlinkUI”。
- 在FlinkUI界面,选择“Task Managers”,单击对应的任务名称,选择“Stdout”查看作业运行日志。
- 方法二:若在提交运行作业前“运行参数”选择了“保存作业日志”,可以通过如下操作查看。
- 登录DLI管理控制台,选择“作业管理 > Flink作业”。
- 单击对应的Flink作业名称,选择“运行日志”,单击“OBS桶”,根据作业运行的日期,找到对应日志的文件夹。
- 进入对应日期的文件夹后,找到名字中包含“taskmanager”的文件夹进入,下载获取taskmanager.out文件查看结果日志。
查询结果参考如下:+I(test-flink,test) +I(test-flink,flink) +I(flink,flink) +I(one-two-ww-three,one) +I(one-two-ww-three,two) +I(one-two-ww-three,ww) +I(one-two-ww-three,three)
即数据输出结果参考如下:
表3 结果表数据 target(STRING)
item(STRING)
test-flink
test
test-flink
flink
flink
flink
one-two-ww-three
one
one-two-ww-three
two
one-two-ww-three
ww
one-two-ww-three
three
- 方法一:
父主题: 表值函数