自学内容网 自学内容网

DataWind将字符串数组拆出多行的方法

摘要:

可视化建模中先将字符串split为array再用explode(array)即可

  1. 可视化建模

进入“可视化建模”页面

1.1 新建任务

如果团队内没有可视化建模任务。请点击“新建任务”,输入名称并确定。

1.2 建立数据连接

在左边栏中选择“数据连接”,点击“+”号新增连接并选择数据集

1.3 导入量产设备数据

找到“智能数据洞察数据表”文件夹下的“Smart_common_event_prod_1h_i”,拖拽至右窗口生成任务执行节点。

点击节点后,在下方的菜单中配置参数如下:

p_date = 最近1天

event_type = 本次需要建立数据集的事件码

1.4 解析自定义字段

点击节点后的小圆点,在菜单中找到“数据清洗”-“计算列”。生成计算列节点

输入字段名称,把自定义字段的名称替换以下表达式中的“xxx”即可完成解析:

split(standby_scene, ',') as array 函数说明 命令格式: split(str, regex, limit) 用途: split(str, regex, limit) - 按照正则表达式分割字符串为子串数组,数组的最大长度为limit. 参数说明: str - 要切分的字符串. regex - 一个Java格式的正则表达式字符串. limit - 用于控制切分的结果数组长度的整数. limit > 0: 结果数组的长度需要小于limit,结果数组的最后一个条目将包含最后一个匹配正则表达式之外的所有输入. limit <= 0: 结果数组的长度不再设置限制.

字符串:poor_wifi_signal,skykey_bt_scan,nearby_bt_scan,

转数组:["poor_wifi_signal","skykey_bt_scan","nearby_bt_scan"]

1.5 explode函数将数组拆成多行

继续新增一个计算列,在之前基础上使用 explode 函数,具体示例如下,新建standby_scene_array_explode字段名,填入如下字段表达式

explode(`standby_scene_array`) 函数说明 命令格式: explode(expr) 用途: explode(expr) - 将数组expr的元素分解为多行,或将Map类型的expr映射到多行和列中. 除非另有说明,否则使用列明col表示数组的元素,或者列名key和value表示map的元素.

可以看到:字符串数组被拆除多行了哈

1.6 输出数据集

生成“字段设置”算子

调整最终输出到数据集的字段和名称

2. 可视化查询

绘制出单个场景的埋点数量占比

维度选择standby_scene_array_explode字段,指标选择埋点数,选择饼图呈现


原文地址:https://blog.csdn.net/su749520/article/details/143635678

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!