pap*_*elr 1 attributes json apache-nifi
我正在从以下 JSON/AVRO 模式生成随机数据:
{
"type" : "record",
"namespace" : "test",
"name" : "metro_data",
"fields": [
{
"name" : "PersonID",
"type" : "int"
},
{
"name" : "TripStartStation",
"type" : {
"type" : "enum",
"name" : "StartStation",
"symbols" : ["WIEHLE_RESTON_EAST", "SPRING_HILL", "GREENSBORO"]
}
},
{
"name" : "TripEndStation",
"type" : {
"type" : "enum",
"name" : "EndStation",
"symbols" : ["WIEHLE_RESTON_EAST", "SPRING_HILL", "GREENSBORO""]
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
上面的模式生成这个,例如:
[ {
"PersonID" : -1089196095,
"TripStartStation" : "WIEHLE_RESTON_EAST",
"TripEndStation" : "SPRING_HILL"
}
Run Code Online (Sandbox Code Playgroud)
我想获取PersonID
架构的编号,并将其添加到属性中。例如,这张照片中的空白需要提取从流中生成的实际 PersonID 号:
我尝试使用EvaluateJSONPath
以下配置,这就是我最终使用empty string set
under 的方式PersonalID
:
是我的下一个处理器UpdateAttribute
吗?不确定如何提取该内容。谢谢!
您有json 消息数组(例如:[...]),您需要使用SplitJson处理器将json 数组拆分为单独的流文件,拆分表达式为$.*
然后使用EvaluateJsonProcessor提取PersonID值作为属性。
流动:
--> SplitJson --> EvaluateJsonPath--> other processors
Run Code Online (Sandbox Code Playgroud)
有关相同问题的更多详细信息,请参阅此链接。