目前我遇到了以下问题:
我正在使用KafkaConsumer阅读来自Kafka主题的消息。消息是字符串,具有以下格式:
{ "a" : "b", "a1" : "b1", "c2" : "c3" }
它们保存在FlowFile的有效负载中。
我想将该字符串转换为json或理想情况下转换为csv,但无法弄清楚如何执行此操作。
我是NiFi的新手,并尽可能地进行了研究,但我找到的答案是关于从json到avro或类似的转换,但从未串起json或avro。 我还发现Kafka消息在FlowFile的有效载荷中,而不在属性中,所以我不知道如何抓住它,因为示例总是涉及属性。
所以简而言之:我可以将FlowFile的有效负载转换为带有一些内置处理器的json / cvs。
答案 0 :(得分:0)
如果您的消息在FlowFile中,则以下序列可能有所帮助:
1)使用AttributesToJson将有效负载消息转换为Json。 2)使用EvaluateJsonPath提取有效负载消息。在你的情况下kafka消息。然后,您可以传递提取的消息以生成csv。
这篇文章可以帮助将Json转换为CSV:Convert Json To CSV
答案 1 :(得分:0)
我最终这样做了:
{ "a" : "b", "a1" : "b1" }
a -> $.a //results in attribute named a with value b
a1 -> $.a1 //results in attribute named a1 with value b1
Replacement value -> ${'a'},${'a1'}
这会产生一条线,但没有新线:
b,b1
要添加附加 \ n 的新行,'\ n',“\ n” >工作。 什么有效在输入替换值字段时按 Shift + Enter ,这导致创建一个空的新行。