Apache Nifi 文本格式轉(zhuǎn)換 csv->json
Abstract:本文的主要目的是展示如何使用nifi 1.2 中的processor將csv格式的文件轉(zhuǎn)換為json格式的文件。nifi中的convertRecord processor能夠完成不同格式的文件之間的相互轉(zhuǎn)換。
涉及到的處理器以及功能
- GetFile:從指定的路徑中讀取文件
- UpdateAttribute:對flowfile的屬性進行更新,添加更改或者刪除flowfile的屬性
- ConvertRecord:通過指定Reader和Writer的類型,完成文件格式轉(zhuǎn)換
- PutFile:將FlowFile寫入到指定路徑
整體流程圖

整體流程圖
細節(jié)說明
GetFile:讀取文件。
property說明:
- Input Directory:輸入文件的路徑
- File Filter:對文件名進行過濾,將不符合的文件過濾掉
-
Keep Source File:默認情況下,會將源文件刪除
UpdateAttribute
property說明:
-
schema.name:在flowfile中添加一個屬性,并設(shè)定取值
ConvertRecord:轉(zhuǎn)換文件格式
首先添加一個Record Reader和Record Writer,對于Record Reader,我們選擇的是CSVReader,因為我們讀取的文件是CSV格式,這個需要根據(jù)讀取文件的格式選擇。對于RecordWriter,我們選擇的是JsonRecordSetWriter。

對于Record Reader而言,我們可以看到右側(cè)有一個小箭頭,點擊箭頭來對CSVReader進一步設(shè)置。

Schema Access Strategy:這里我們選擇通過Schema Name來找到對應(yīng)的schema
Schema Registry:需要選擇Scheme Registry的類型,這里選擇的是AvroSchemaRegistry,右側(cè)又出現(xiàn)一個小箭頭,需要對AvroSchemaRegistry進行設(shè)置。

Record Write進行類似的設(shè)置即可。
當對Record Reader和Record Writer設(shè)置完之后,如下圖所示:

每一行的最右邊有一個類似閃電的圖標,點擊該圖標可以使對應(yīng)的property生效

