#apache-nifi #jolt
#apache-nifi #jolt
Вопрос:
Я хочу объединить объекты, в которых PersonID и visitDate объектов одинаковы, иначе объект останется таким, какой он есть в массиве
Пример ввода —
[
{
"personId": 1,
"visitDate": "1453545",
"htn": 1,
"dm": 0
},
{
"personId": 1,
"visitDate": "1453545",
"htn": 1,
"dm": 1
},
{
"personId": 2,
"visitDate": "4453545",
"htn": 1,
"dm": 1
},
{
"personId": 3,
"visitDate": "6453545",
"htn": 1,
"dm": 1
}
]
Пример вывода
[
{
"personId": 1,
"visitDate": "1453545",
"htn": 1,
"dm": 1
},
{
"personId": 2,
"visitDate": "4453545",
"htn": 1,
"dm": 1
},
{
"personId": 3,
"visitDate": "6453545",
"htn": 1,
"dm": 1
}
]
Ответ №1:
Посмотрите, помогает ли приведенная ниже спецификация, разделите объект по идентификатору пользователя, а затем используйте количество элементов для удаления дубликатов, затем переместите объект в массив.
[
{
"operation": "shift",
"spec": {
"*": "@personId[]"
}
},
{
"operation": "cardinality",
"spec": {
"*": {
"@": "ONE"
}
}
}, {
"operation": "shift",
"spec": {
"*": {
"@": "[]"
}
}
}
]