我有一个包含10个字段的csv文件。我需要查找hbase以获取与csv字段之一相对应的值。结果hbase字段应附加到csv文件中。 使用Nifi,我构建了以下流程。
GenerateFlowFile(创建csv记录)-> UpdateRecord(已配置 avro模式名称以读取传入的csv文件)-> ConvertRecord (已配置CSV阅读器和JSON编写器)-> SplitJSON-> EvaluateJSONPath(获取用于hbase查找的行键)-> FetchHBaseRow(将输出作为流文件属性获取)
现在,挑战在于读取属性“ hbase.row
”(它是JSON)的内容,选择一对field-value
中的一个,并将其附加到流文件内容中
答案 0 :(得分:1)
表达语言具有jsonPath函数:
https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#jsonpath
您应该能够使用UpdateAttribute创建包含提取字段的新属性,例如firstName = $ {myJson:jsonPath('$。firstName')}会将firstName的值提取到名为firstName的属性中,从属性myJson开始。
在那之后,假设您的模式具有该值的字段,您应该可以使用UpdateRecord将值添加到流文件内容中。