Нифи положил / добавить вывод FetchHBaseRow обратно в файл потока - PullRequest
0 голосов
/ 10 октября 2018

У меня есть CSV-файл с 10 полями.Мне нужно посмотреть hbase, чтобы получить значение, соответствующее одному из полей CSV.Результирующее поле hbase должно быть добавлено в CSV-файл.Используя Nifi, я построил следующий поток:

GenerateFlowFile (создать запись в формате csv) -> UpdateRecord (настроенное имя схемы avro для чтения входящего файла csv) -> ConvertRecord (настроенное средство чтения CSV и JSONwriter) -> SplitJSON -> EvaluateJSONPath (для извлечения ключа строки для поиска в hbase) -> FetchHBaseRow (получил вывод в виде атрибута потока-файла)

Теперь задача состоит в том, чтобыпрочитайте содержимое атрибута 'hbase.row', который является JSON, выберите одну из пары field-value, добавьте ее к содержимому файла потока

1 Ответ

0 голосов
/ 10 октября 2018

Язык выражений имеет функцию jsonPath:

https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#jsonpath

Вы должны иметь возможность использовать UpdateAttribute для создания нового атрибута, содержащего извлеченное поле, что-то вроде firstName = $ {myJson: jsonPath ('$. firstName')} извлечет значение firstName в атрибут firstName, начиная с атрибута myJson.

После этого вы сможете использовать UpdateRecord для добавления значения в потоксодержимое файла, при условии, что в вашей схеме есть поле для значения.

...