nifi 中用 EvaluateJsonPath 和 SplitJson 取出{ "bulletinBoard": { "bulletins": [ { "id": 9180741, "groupId": "983e394a-ca1c-1038-2900-208da5a71496", "sourceId": "acc63c13-9181-1e96-f3f7-15542aeb761b", "timestamp": "11:14:42 CST", "canRead": true, "bulletin": { "id": 9180741, "category": "Log Message", "groupId": "983e394a-ca1c-1038-2900-208da5a71496", "sourceId": "acc63c13-9181-1e96-f3f7-15542aeb761b", "sourceName": "SplitJson", "level": "ERROR", "message": "SplitJson[id=acc63c13-9181-1e96-f3f7-15542aeb761b] The evaluated value {bulletinBoard={bulletins=[], generated=11:14:36 CST}} of $ was not a JSON Array compatible type and cannot be split.", "timestamp": "11:14:42 CST" } } ], "generated": "11:14:59 CST" } } 上述json中的message
时间: 2023-08-10 16:06:27 浏览: 54
在NiFi中使用EvaluateJsonPath和SplitJson来提取上述JSON中的message字段,您可以按照以下步骤进行操作:
首先,使用EvaluateJsonPath将message字段的值提取出来。在EvaluateJsonPath配置中,设置以下属性:
- Destination: flowfile-attribute
- JSONPath Expression: $.bulletinBoard.bulletins[0].bulletin.message
- Return Type: scalar
这将把message字段的值保存到flowfile属性中。
接下来,使用SplitJson来拆分保存在flowfile属性中的message字段的值。在SplitJson配置中,设置以下属性:
- Destination: flowfile-content
- JsonPath Expression: $..message
- Result Strategy: Append values
这将根据空格拆分message字段的值,并将拆分后的结果追加到flowfile的内容中。
完成以上配置后,您将能够获得拆分后的message字段的值,并将其存储在flowfile中。
希望对您有所帮助!
相关问题
Problems Parentorg.apache.nifi:c2-client-bundle:1.22.0' has problems java.lang.OutOfMemoryError: Java heap space
出现"java.lang.OutOfMemoryError: Java heap space"错误通常表示Java堆空间不足。这意味着您的应用程序需要更多的内存来执行所需的操作。解决此问题的几种方法包括:
1. 增加Java堆空间:您可以通过在启动应用程序时使用"-Xmx"和"-Xms"参数来增加Java堆空间。例如,您可以使用"-Xmx2g"将最大堆大小设置为2GB。请注意,这取决于您的系统和可用内存。
2. 优化代码和内存使用:检查代码中是否有内存泄漏或不必要的对象保留在内存中。确保及时释放不再使用的对象,并使用合适的数据结构和算法来减少内存占用。
3. 调整应用程序需求:如果您的应用程序处理大量数据或执行复杂计算,考虑优化算法或分批处理数据,以减少内存使用。
4. 使用更高效的数据处理框架:如果您正在处理大型数据集,请考虑使用分布式处理框架如Apache Spark或Apache Flink,它们可以有效地管理内存和处理大规模数据。
请注意,具体解决方案可能因您的应用程序和环境而异。建议您根据具体情况尝试上述方法,并根据需要进行调整。如果问题仍然存在,请提供更多详细信息,我将尽力帮助您解决问题。
running "VolumeBinding" filter plugin for pod "nifi-56d7b74cf8-w6dg": pod hasunbound immediate PersistentVolumeClaims
这是一个 Kubernetes 中的错误信息。它表示 Pod `nifi-56d7b74cf8-w6dg` 有一个或多个未绑定的 PersistentVolumeClaims。
这种情况通常发生在没有足够可用的存储资源时。如果没有为该 Pod 预配存储卷或者存储卷资源不足,就会出现这个问题。
您可以通过检查该 Pod 所使用的 PersistentVolumeClaim 的状态来进一步诊断问题。您可以使用以下命令获取有关 PersistentVolumeClaim 的信息:
```
kubectl describe pvc <pvc-name>
```
如果您想在 Pod 中使用一个新的存储卷,您需要创建一个新的 PersistentVolumeClaim,并将其分配给该 Pod。您可以使用以下命令创建一个新的 PersistentVolumeClaim:
```
kubectl apply -f <path/to/pvc/definition>
```
请确保 PersistentVolumeClaim 的定义中指定了正确的存储类和资源大小,以确保 Kubernetes 可以为 Pod 分配足够的存储空间。