Jolt转换技术求助:按Group字段将相似值分组为新键
Jolt转换问题求助
输入JSON数据
[ { "UniqueID": 1, "Group": "alpha", "Type": "t/1" }, { "UniqueID": 2, "Group": "alpha", "Type": "t/14" }, { "UniqueID": 3, "Group": "beta", "Type": "t/11" }, { "UniqueID": 4, "Group": "charlie", "Type": "t/10" }, { "UniqueID": 5, "Group": "beta", "Type": "t/7" } ]
期望输出
{ "alpha": ["t/1", "t/14"], "beta": ["t/11", "t/7"], "charlie": ["t/10"] }
尝试过的转换规则(未得到预期结果)
[ { "operation": "shift", "spec": { "*": { "Group": "&2.Type" } } }, { "operation": "cardinality", "spec": { "*": "ONE" } } ]
正确的Jolt转换规则
仅需一个shift操作即可完成分组,规则如下:
[ { "operation": "shift", "spec": { "*": { "Type": "@(1,Group).[]" } } } ]
规则说明
*:遍历输入数组中的每一个元素"Type": "@(1,Group).[]":将当前元素的Type值,存入以当前元素Group值为键的数组中,[]会自动把同键的多个值收集为数组,无需额外操作
内容的提问来源于stack exchange,提问作者BM100
相关产品推荐
相关产品推荐

