簡體   English   中英

NiFi,與KafkaConsumer一起以json格式編寫

[英]NiFi, flow with KafkaConsumer to write as json

當前,我陷入以下問題:我正在使用KafkaConsumer從Kafka主題中讀取消息。 消息是字符串,並具有以下格式: { "a" : "b", "a1" : "b1", "c2" : "c3" }它們保存在FlowFile的有效載荷內。

我想將該字符串轉換為json或理想情況下轉換為csv,但無法弄清楚該怎么做。

我是NiFi的新手,並已進行了盡可能多的研究,但我發現的答案是關於從json到avro或類似內容的轉換,但從未將字符串轉換為json或avro。 我還發現Kafka消息在FlowFile的有效負載中,而不是在屬性中,因此我不知道如何使用它,因為示例始終涉及屬性。

簡而言之:我可以使用一些內置處理器將FlowFile的有效載荷(它是一個字符串)轉換為json / cvs。

如果您的消息在FlowFile中,則以下順序可能會有所幫助:

1)使用AttributesToJson將有效負載消息轉換為Json。 2)使用EvaluateJsonPath提取有效負載消息。 您的情況是kafka消息。 然后,您可以將提取的消息傳遞給csv生成。

這篇文章可以幫助將Json 轉換為CSV將Json轉換為CSV

我最終這樣做:

  1. ConsumeKafka給我字符串:

{ "a" : "b", "a1" : "b1" }

  1. EvaluateJsonPath通過添加屬性來創建屬性

a -> $.a //results in attribute named a with value b

a1 -> $.a1 //results in attribute named a1 with value b1

  1. ReplaceText從EvaluateJsonPath獲取屬性,以形成一個單獨的csv格式:

Replacement value -> ${'a'},${'a1'}

結果是一行, 但沒有新行:

b,b1

要添加添加\\ n'\\ n'“ \\ n”的新行無效 起作用的是在“ 替換值”字段中鍵入內容時按Shift + Enter ,這導致創建一個空的新行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM