Json NiFi如何将内容合并到一行csv中
我不熟悉使用Nifi,在将两个csv文件合并为一行csv时遇到问题。 如果下面已经回答了这个问题,我很抱歉。但是,我试着在互联网上到处寻找,但找不到适合我需要的解决方案 问题是: 我有Json格式的数据,我需要将数据转换成csv,文件输出应该是一个平面csv文件 我从如下所示的Json数据开始:Json NiFi如何将内容合并到一行csv中,json,csv,apache-nifi,Json,Csv,Apache Nifi,我不熟悉使用Nifi,在将两个csv文件合并为一行csv时遇到问题。 如果下面已经回答了这个问题,我很抱歉。但是,我试着在互联网上到处寻找,但找不到适合我需要的解决方案 问题是: 我有Json格式的数据,我需要将数据转换成csv,文件输出应该是一个平面csv文件 我从如下所示的Json数据开始: {"header": {"messageId": "xxx", "name":"xxx",..}, "content": {"TimeStamp":"xxx",..}} 我首先将json消息拆分为其标
{"header": {"messageId": "xxx", "name":"xxx",..}, "content": {"TimeStamp":"xxx",..}}
我首先将json消息拆分为其标题和内容组件,并使用ConvertRecord将数据从json转换为csv。直到这一部分我都弄明白了
两个csv记录如下所示:
然后我使用MergeContent处理器合并两个csv数据,希望得到一个csv数据,标题和内容数据在一行中(标题在第1行,值在第2行)。然而,在合并内容时,我得到了这个
如您所见,“header”标题部分的标题位于第1行,“content”部分的标题位于第3行,值分别位于第2行和第4行。但是,我希望“header”部分和“content”部分的标题都在第1行,而这两个部分的值都在第2行
我解决问题的方法不正确吗?有没有更好的办法解决这个问题?另外,我可以做些什么来纠正当前的方法,以获得我想要的结果
任何帮助都将不胜感激。提前谢谢您。可能是另一种方法。想象一下,我们的JSON看起来像:
{
"part1": {
"A": "A1",
"B": "B1"
},
"part2": {
"X": "X1",
"Y": "Y1"
}
}
A,B,X,Y
A1,B1,X1,Y1
你想要的是CSV,看起来像:
{
"part1": {
"A": "A1",
"B": "B1"
},
"part2": {
"X": "X1",
"Y": "Y1"
}
}
A,B,X,Y
A1,B1,X1,Y1
然后,我们可以通过将原始JSON修改为新的JSON描述来解决这个难题,如下所示:
{
"A":"A1",
"B":"B1",
"X":"X1",
"Y":"Y1"
}
然后,我们可以使用JSON到CSV转换器,该转换器将生成您想要的格式
要将原始JSON转换为所需的JSON,我们可以使用joltTransferMJSON
处理器。一个示例规范可能是:
[{
"operation": "shift",
"spec": {
"part1": {
"*": "&"
},
"part2": {
"*": "&"
}
}
}]
谢谢你的回答!早些时候,我正在尝试JoltTransformer处理器。我将尝试你的建议,并将结果更新给你。