Kusto调用countof()报错无法将参数转换为标量常量问题咨询
错误原因
- Kusto 内置的
countof()函数对入参有强制约束:第二个匹配参数必须是编译期可确定的标量常量,不支持接收来自数据表的动态列值作为入参。 - 单独调用函数时你传入的是字符串字面量,编译阶段就能识别为固定常量,符合
countof()的参数要求,因此可以正常返回结果。 - 在数据表查询的
extend算子中调用UDF时,传入的第二个参数Lookup是表的动态列,每一行的取值要到运行阶段才能确定,无法通过编译期的参数校验,就抛出了对应的错误。
替代解决方案
如果需要实现按表中动态值匹配并返回索引的需求,可以将UDF的实现替换为支持动态列入参的indexof()函数:
.create-or-alter function with (docstring = 'abc', folder='udfs') get_index_of(input:string, lookup:string) { indexof(input, lookup) }
修改后再执行你原有的数据表查询就可以正常返回结果。
内容的提问来源于stack exchange,提问作者skolukmar
相关产品推荐
相关产品推荐

