如何使用Jolt规范在Apache NiFi中实现目标输出
Apache NiFi Jolt 转换规范
输入JSON
[ { "ImageId" : [ "ami-06a13556596424b", "ami-04d29b6f966df15" ], "InstanceId" : [ "i-0b456d23d0a5e44", "i-072b95b1d6a4b11" ], "InstanceType" : [ "t2.micro", "t2.micro" ] } ]
目标输出JSON
[ { "ImageId": "ami-06a13556594b01", "InstanceId": "i-0b456d23d0a5e3", "InstanceType": "t2.micro" }, { "ImageId": "ami-04d29b6f966df37", "InstanceId": "i-072b95b1d6a436", "InstanceType": "t2.micro" } ]
适用的Jolt规范
[ { "operation": "shift", "spec": { "*": { "ImageId": { "*": { "@": "[&1].ImageId", "@(2,InstanceId[&1])": "[&1].InstanceId", "@(2,InstanceType[&1])": "[&1].InstanceType" } } } } } ]
说明
这个Jolt规范通过shift操作,将输入中每个字段数组的同索引元素提取出来,组合成独立的对象,最终形成目标格式的数组:
&1代表当前遍历的数组索引(0和1),用于定位新对象在输出数组中的位置@(2,XXX[&1])用于向上两层(即输入的顶层对象)获取对应索引的XXX字段值
内容的提问来源于stack exchange,提问作者sandilya ch
相关产品推荐
相关产品推荐

