问题描述
使用Azure流分析的CollectTop
聚合函数后,我得到了一个类似于json的结构,该结构似乎像是Dictionary of Dictionary。
我需要将其转换为多维数组,然后传递给AzureML UDF。
我的问题主要是关于如何在javascript-UDF中解释此结构,因为我对Java完全陌生。
这是一个示例记录(使用CollectTop
),但是挑战在于我的JavaScript UDF应该是什么样子?
[
{"rank":1,"value":{"engineid":"engine001","tmp":-0.0019,"hum":-0.0002,"eventtime":4}},{"rank":2,"tmp":-0.0026,"eventtime":2}},{"rank":3,"tmp":0.0003,"eventtime":1}}
]
根据以上数据结构,我很想生成以下数组。 (采用“ tmp和嗡嗡声”字段)
[[-0.0019,-0.0002],[-0.0026,[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
最诚挚的问候
解决方法
var input = [
{"rank":1,"value":{"engineid":"engine001","tmp":-0.0019,"hum":-0.0002,"eventtime":4}},{"rank":2,"tmp":-0.0026,"eventtime":2}},{"rank":3,"tmp":0.0003,"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;
}
这是您需要的吗?