2016-12-24 104 views
1

我正在使用csv到json转换的自定义处理器,它将csv文件数据转换为包含数据的json对象的json数组。Apache Nifi - 通过自定义处理器获取文件属性并构建json

我的要求是获取像文件名,uuid,路径等文件属性,并从这些构造一个json。

问:

我怎样才能获得文件的相关属性和构建之前得到构造一个JSON对象追加到相同的JSON。

刚刚花了几天的时间与Apache的NIFE工作,所以只需与自定义处理器的确切要求。

回答

4

我不能说正在为您的自定义处理器编写哪些属性,但有一组core attributes是大多数/所有流文件都具有的,例如filename和uuid。如果您使用GetFileListFile/FetchFile来读取您的CSV文件,您将拥有这些和其他一些属性(请参阅文档以获取更多信息)。

当您有一个具有适当属性集的流文件时,可以使用AttributesToJSON处理器创建一个包含指定属性的平面列表的JSON对象,并且该对象可以替换流文件内容或成为它自己的属性(名为'JSONAttributes'),具体取决于AttributesToJSON的“Destination”属性的设置。

+0

当然,我正在使用GetFile处理器来获取CSV文件......并且您完全可以使用默认的文件属性(在我的自定义处理器中也存在这些属性,因为我使用的是Flowfile),请考虑您的建议api方法并找到[org.apache.nifi.flowfile.attributes.CoreAttributes](http://docs.hortonworks.com/HDPDocuments/HDF1/HDF-1.2/bk_DeveloperGuide/content/flowfile.html)enum它定义了核心每个FlowFile的属性。得到了所需的属性..谢谢 – Ranjan

相关问题