["---a---", "---b---", -6ren">
gpt4 book ai didi

azure - 动态数组上的 Kusto UDF(映射字符串值)

转载 作者:行者123 更新时间:2023-12-03 05:23:30 29 4
gpt4 key购买 nike

我正在尝试对字符串数组(动态类型)应用简单的转换。

为了举例,我想映射一个字符串数组。每个字符串用破折号括起来 - ["a", "b", "c"] => ["---a---", "---b---", "--- c---"]

我尝试过:

let foof = (fooTable: dynamic) {
fooTable | mv-apply fooTable on ( project abc=strcat("---", fooTable, "---") | summarize make_list(abc))
};
let fooTable = datatable(str: string, record: dynamic) [
"name1", dynamic(["a", "b", "c"]),
"name2", dynamic(["a", "b", "c"]),
"name3", dynamic(["a", "b", "c"]),
];
fooTable | project abc=foof(record)

我期望获得映射的三行(应用于每行的 UDF)。

看起来我在没有 UDF 的情况下得到了正确的结果:

fooTable | mv-apply record on (
project abc=strcat("--", record, "---") | summarize make_list(abc)
)

但是我的 UDF 做错了。

但我得到:

Operator source expression should be table or column

我尝试仅更改 UDF,因此在 KQL 中我将仅调用给定列上的 UDF。

最佳答案

您的 UDF 应该有一个表格参数而不是标量参数,并且您可以使用 invoke运算符:

let foof = (fooTable: (record: dynamic)) {
fooTable | mv-apply record on ( project abc=strcat("---", record, "---") | summarize abc = make_list(abc))
};
let fooTable = datatable(str: string, record: dynamic) [
"name1", dynamic(["a", "b", "c"]),
"name2", dynamic(["a", "b", "c"]),
"name3", dynamic(["a", "b", "c"]),
];
fooTable | invoke foof() // you can also replace this line with "foof(fooTable)"
<表类=“s-表”><标题>strabc <正文>名称1[
“---a---”,
“---b---”,
“---c---”
] 名称2[
“---a---”,
“---b---”,
“---c---”
] 名称3[
“---a---”,
“---b---”,
“---c---”
]

关于您的评论 -

  • 假设我正确理解了您的口头描述 - 您可以尝试以下操作:
  • 否则,请按要求澄清/提供示例。
let some_variable = dynamic(['a','b','c']);
let foof = (some_variable: dynamic) {
toscalar(
print some_variable
| mv-apply v = some_variable on ( project v = strcat("---", v, "---"))
| summarize make_set(v)
);
};
let T = datatable(str: string) [
"---abc---",
"---a---",
"---b---d---c",
];
T
| where str has_any (foof(some_variable))
<表类=“s-表”><标题>str <正文>---a------b---d---c

关于azure - 动态数组上的 Kusto UDF(映射字符串值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70568607/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com