Как сохранить и сбросить состояние в структурированном потоке? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть требование, в котором мне нужно показать агрегированное количество определенной категории, начиная с начала текущего дня и до текущего времени.

Я использую Структурную потоковую передачу для группировки.Поскольку окно не сохраняет состояние фрейма данных, я не уверен, как реализовать логику, в которой я могу сохранить его состояние и увеличить счетчик до предыдущего состояния.Также как мне сбросить состояние при наступлении нового дня.

Входная запись:

{"Floor_Id" : "Shop Floor 1",
"HaltRecord" : {
    "HaltReason" : "Danahydraulic Error",
    "Severity" : "Low",
    "FaultErrorCategory" : "Docked",
    "NonFaultErrorCategory" : null
},
"Description" : "Forklift",
"Category" : {
    "Type" : "Halt",
    "End_time" : NumberLong(2018-02-13T12:00:01),
    "Start_time" : NumberLong(2018-02-13T12:00:00)
},
"Asset_Id" : 123,
"isError" : "y",
"Timestamp": 2018-02-13T12:00:01}

Выходной ответ:

{
    "Floor_Id": "Shop Floor 1",
    "Error_Category": [
        {
            "Category": "Operator Error",
            "DataPoints": 
                {
                    "NumberOfErrors": 20,
                    "Date": 2018-02-13
                }
        },
        {
            "Category": "Danahydraulic Error",
            "DataPoints": {
                    "NumberOfErrors": 15,
                    "Date": 2018-02-13
                }
        }
    ]
}

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 15 февраля 2019

Я не использовал функцию состояния структурированного потока, но я знаю, что это функция mapGroupWithState, которая обеспечивает возможность сохранения состояния и логики подсчета.

...