首页 > 解决方案 > 如何将 Azure 流分析中的“类字典”结构转换为带有 javascript UDF 的多维数组?

问题描述

使用CollectTopAzure Stream Analytics 的聚合功能后,我得到了一个类似 json 的结构,看起来就像一个 Dictionary of Dictionaries。我需要将此转换为一个多维数组,我想将其传递给 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]]

欢迎任何帮助或见解。

这个问题与另外两个问题有关:

最好的祝福

标签: azureuser-defined-functionsazure-stream-analytics

解决方案


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;
    }

这是你需要的吗?


推荐阅读