Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json NiFi如何将内容合并到一行csv中_Json_Csv_Apache Nifi - Fatal编程技术网

Json NiFi如何将内容合并到一行csv中

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消息拆分为其标

我不熟悉使用Nifi,在将两个csv文件合并为一行csv时遇到问题。 如果下面已经回答了这个问题,我很抱歉。但是,我试着在互联网上到处寻找,但找不到适合我需要的解决方案

问题是: 我有Json格式的数据,我需要将数据转换成csv,文件输出应该是一个平面csv文件

我从如下所示的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处理器。我将尝试你的建议,并将结果更新给你。