使用 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 和 hum 字段)
[[-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
致以诚挚的问候
最佳答案
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流分析中的 'dictionary-like'结构转换为多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63357901/