将带有分隔符的列字符串拆分为Azure Kusto中​​的单独列

时间:2020-09-07 14:32:09

标签: kusto kusto-query-language kql

我在azure表中有一个列“ Apples”,其中包含以下字符串:“ Colour:red,Size:small”。

当前情况:

|-----------------------|
| Apples                |
|-----------------------|
| Colour:red,Size:small |
|-----------------------|

期望的情况:

|----------------|
| Colour | Size  |
|----------------|
| Red    | small |
|----------------|

请帮助

2 个答案:

答案 0 :(得分:0)

此查询给了我想要的结果: | parse Apples with "Colour:" AppColour ", Size:" AppSize

请记住,在要提取的每个单词之前都包含所有不同的定界符,例如“,Size”。注意两者之间的空间。

这对我有帮助,然后我凭直觉根据自己的需求自定义查询:

https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/parseoperator

答案 1 :(得分:0)

我会回答标题,因为我注意到很多人都在寻找解决方案。

这里的关键是 mv-expand 运算符(将多值动态数组或属性包扩展为多条记录):

datatable (str:string)["aaa,bbb,ccc", "ddd,eee,fff"]
| project splitted=split(str, ',')
| mv-expand col1=splitted[0], col2=splitted[1], col3=splitted[2]
| project-away splitted

project-away 运算符允许我们选择从输入中排除哪些列

结果:

+--------------------+
| col1 | col2 | col3 |
+--------------------+
| aaa  | bbb  | ccc  |
| ddd  | eee  | fff  |
+--------------------+