You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在KQL中为数组输入生成合并动态输出列?

解决KQL函数处理数组输入并合并输出的问题

当然支持数组输入,你可以通过array_for_each结合make_bag实现需求,修改后的KQL代码如下:

let T = datatable(a:string, b:dynamic)
[
    "hello", dynamic({"A":1,"B":2,"value1":3}),
    "world", dynamic({"value1":4,"value2":5}),
];

let F = (T:(b:dynamic), input: dynamic) {
    T | extend new_output_column = make_bag(array_for_each(input, x => bag_pack(x, b.value1)))
};
let input= dynamic(["input1", "input2"]);

T | invoke F(input)

代码说明:

  • array_for_each(input, x => bag_pack(x, b.value1)):遍历输入数组的每个元素x,将x作为键、当前行的b.value1作为值,生成单个键值对的动态对象。
  • make_bag:将array_for_each生成的多个小动态对象合并成完整的动态列,即你需要的new_output_column。

执行后输出完全符合预期:

a       b                                   new_output_column
hello   {"A":1,"B":2,"value1":3}            {"input1":3,"input2":3}
world   {"value1":4,"value2":5}             {"input1":4,"input2":4}

内容的提问来源于stack exchange,提问作者DxG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:32:05