Поворот строк данных JSON в столбец - PullRequest
0 голосов
/ 31 октября 2018

Мне нужна помощь в следующем. У меня есть данные, как

[{
"id": "0001",
"type": "donut",
"name": "Cake",
"topping":
    [
        { "id": "5003", "type": "Chocolate" },
        { "id": "5004", "type": "Maple" }
    ]
}]

Я хочу преобразовать это в следующее

enter image description here

Параметры будут динамическими или множественными, а не только шоколад и клен)

Я хочу создать запрос потоковой аналитики, который обрабатывает эти данные и сохранить в таблице назначения, у которой уже есть такие столбцы, как Id, Name, Type, Chocolate, Maple ...... Пожалуйста, помогите мне в этом.

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете получить помощь от udf в ASA.

Код UDF:

function main(arg) {
    var array = arg.topping;
    var map = {};
    map["id"] = arg.id;
    map["type"] = arg.type;
    map["name"] = arg.name;
    for(var i=0;i<array.length;i++){        
        var key=array[i].type;        
        map[key] = array[i].id;      
    }
    return map;  
}

SQL:

WITH 
c AS
(
    SELECT 
    udf.processArray(jsoninput) as result
    from jsoninput
)

select c.result
INTO
    jaycosmos
from c

Пример данных:

[{
"id": "0001",
"type": "donut",
"name": "Cake",
"topping":
    [
        { "id": "5003", "type": "Chocolate" },
        { "id": "5004", "type": "Maple" }
    ]
},
{
"id": "0002",
"type": "donut2",
"name": "Cake2",
"topping":
    [
        { "id": "5005", "type": "Chocolate" }
    ]
}
]

Выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...