Azure Stream Analytics数组解析报错:Apply仅支持指定函数
解决Azure Stream Analytics展开数组的报错问题
错误原因
你碰到的'Apply' can only be used with functions 'getarrayelements, getrecordproperties'错误,是因为Azure Stream Analytics的CROSS APPLY语法要求必须配合getarrayelements(处理数组)或getrecordproperties(处理记录)函数使用,不能直接把数组字段作为应用对象。
正确查询语句
把原查询改成用getarrayelements函数解析数组字段即可:
SELECT a.[id], row1.ArrayValue AS row FROM input a CROSS APPLY GetArrayElements(a.[row]) AS row1
代码说明
GetArrayElements(a.[row]):这个函数会把row数组里的每个元素拆成单独的记录,每条记录包含一个ArrayValue字段,对应原数组里的单个值。CROSS APPLY:将拆分后的记录和原表中的每条主记录关联起来,实现数组展开的效果。
验证结果
用你提供的输入数据:
[ { "id": "ada1", "row": [1,2,3] }, { "id": "ada2", "row": [5,4,7,9] } ]
执行正确查询后,就能得到你想要的输出:
id,row ada1,1 ada1,2 ada1,3 ada2,5 ada2,4 ada2,7 ada2,9
内容的提问来源于stack exchange,提问作者Aman
相关产品推荐
相关产品推荐

