如何将 Azure 流分析中的“类字典”结构转换为带有 javascript UDF 的多维数组?
Posted
技术标签:
【中文标题】如何将 Azure 流分析中的“类字典”结构转换为带有 javascript UDF 的多维数组?【英文标题】:How to convert a 'dictionary-like' structure in Azure Stream Analytics to a multi dimensional array with a javascript UDF? 【发布时间】:2020-08-11 12:14:29 【问题描述】:使用 Azure 流分析的CollectTop
聚合功能后,我得到了一个类似 json 的结构,看起来像字典词典。
我需要将此转换为一个多维数组,然后将其传递给 AzureML UDF。
我的问题主要是关于如何在 javascript-UDF 中解释这种结构,因为我对 Javascript 完全陌生。
这是一个示例记录(使用 CollectTop
),但挑战是我的 javascript UDF 应该是什么样子?
[
"rank":1,"value":"engineid":"engine001","tmp":-0.0019,"hum":-0.0002,"eventtime":4,
"rank":2,"value":"engineid":"engine001","tmp":-0.0026,"hum":-0.0002,"eventtime":2,
"rank":3,"value":"engineid":"engine001","tmp":0.0003,"hum":-0.0002,"eventtime":1
]
从上面的数据结构中,我很想生成以下数组。 (采用 tmp 和哼声场)
[[-0.0019, -0.0002], [-0.0026, -0.0002], [0.0003, -0.0002]]
欢迎任何帮助或见解。
这个问题与另外两个问题有关:
CollectTop is returning more rows than I would expect in Azure Stream Analytics Call Azure Stream Analytics UDF with multi-dimensional array of last 5 records, grouped by record最好的问候
【问题讨论】:
你的多维数组是什么样的?你能告诉我们你期望的多维数组结构的样本吗? 您好@SteveZhao - 感谢您的反馈。我已经用所需的数组结果更新了我的问题。 【参考方案1】:var input = [
"rank":1,"value":"engineid":"engine001","tmp":-0.0019,"hum":-0.0002,"eventtime":4,
"rank":2,"value":"engineid":"engine001","tmp":-0.0026,"hum":-0.0002,"eventtime":2,
"rank":3,"value":"engineid":"engine001","tmp":0.0003,"hum":-0.0002,"eventtime":1
];
console.log(getOutput(input));
function getOutput(input)
var output = [];
for(var x in input)
var array = [];
array.push(input[x].value.tmp);
array.push(input[x].value.hum);
output.push(array);
return output;
这是你需要的吗?
【讨论】:
先生,这正是我所需要的 ;)。谢谢你...以上是关于如何将 Azure 流分析中的“类字典”结构转换为带有 javascript UDF 的多维数组?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 azure 流分析将 cosmos db 中的值更新为输出?