per*_*nce 2 azure-data-explorer kusto-explorer
我想根据数据表Fruit中具有子字符串匹配的单元格通过连接这两个表来创建一个结果表Things。
let Fruit = datatable(fruit:string)
[
"apple",
"banana"
"orange"
];
let Things = datatable(fruit:string)
[
"anappletree",
"myoranges"
];
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情:
Fruit
| join Things on $left.fruit contains $right.thing
Run Code Online (Sandbox Code Playgroud)
但出现此错误:
Semantic Error
join: only column entities or equality expressions are allowed in this context.
Run Code Online (Sandbox Code Playgroud)
所以这里不能用contains。
我如何加入这个以便我可以获得一张包含以下内容的表格
"apple" | "anappletree"
"banana" | ""
"orange" | "myoranges"
Run Code Online (Sandbox Code Playgroud)
join如果(在您的情况下 - )的左侧Fruit足够小,您可以尝试使用mv-apply:
let Fruit = datatable(fruit:string)
[
"apple",
"banana",
"orange"
];
let Things = datatable(thing:string)
[
"anappletree",
"myoranges",
"this is not a fruit"
];
let Fruit_list = toscalar(Fruit | summarize make_list(fruit));
Things
| mv-apply fruit = Fruit_list on (where thing contains fruit)
Run Code Online (Sandbox Code Playgroud)
| 事物 | 水果 |
|---|---|
| 一棵苹果树 | 苹果 |
| 橘子 | 橙子 |
或者,由于join在撰写本文时仅支持相等,您可以尝试使用交叉连接,然后使用以下方法进行过滤contains:
let Fruit = datatable(fruit:string)
[
"apple",
"banana",
"orange"
];
let Things = datatable(thing:string)
[
"anappletree",
"myoranges",
"this is not a fruit"
];
Fruit
| extend dummy = 1
| join kind=inner (Things | extend dummy = 1) on dummy
| where thing contains fruit
| project-away dummy*
Run Code Online (Sandbox Code Playgroud)
| 水果 | 事物 |
|---|---|
| 苹果 | 一棵苹果树 |
| 橙子 | 橘子 |
| 归档时间: |
|
| 查看次数: |
2781 次 |
| 最近记录: |