2016-12-24 5 views
1

Я использую пользовательский процессор для преобразования CSV в формате JSON, который преобразует данные CSV-файла в массив JSON, который содержит JSon объекты данных.Apache Nifi - получить атрибуты файлов и построить JSON через пользовательский процессор

Мое требование, чтобы получить атрибуты файла, как имя файла, UUID, пути и т.д., и построить из них JSON.

Вопрос:

Как я могу получить соответствующие атрибуты файла и построить а-объект JSON добавляет его в том же формате JSON получать построены раньше.

Просто было несколько дней, работающих с апачом НИМ, так что просто идти с точными требованиями теперь пользовательским процессором.

ответ

4

Я не могу говорить, какие атрибуты написаны для вашего пользовательского процессора, но есть набор core attributes, который имеет большинство/все файлы потока, такие как имя файла и uuid. Если вы используете GetFile или ListFile/FetchFile прочитать в файле CSV, вы будете иметь те, и ряд других атрибутов, доступных (см документа для получения дополнительной информации).

Если у вас есть файл потока, который имеет соответствующие атрибуты, вы можете использовать процессор AttributesToJSON для создания объекта JSON, содержащего плоский список указанных атрибутов, и этот объект может заменить содержимое файла потока или стать его собственным (с именем «JSONAttributes») в зависимости от настройки свойства «Destination» для атрибутовToJSON.

+0

, безусловно, я использует процессор GetFile, чтобы получить CSV file..and вы абсолютно обряда для файла по умолчанию атрибутов доступен (которые есть в моем пользовательском процессоре тоже, как я использую Flowfile), сог принимая ваше предложение заглянуло в методы API и найдены [org.apache.nifi.flowfile.attributes.CoreAttributes] (http://docs.hortonworks.com/HDPDocuments/HDF1/HDF-1.2/bk_DeveloperGuide/content/flowfile.html) перечисление, который определяет ядро атрибуты для каждого FlowFile. Получили атрибуты, что было необходимо. – Ranjan