【问题标题】:Nifi put / append output of FetchHBaseRow back to the flowfileNifi 将 FetchHBaseRow 的输出/追加输出回流文件
【发布时间】:2018-10-10 16:55:05
【问题描述】:

我有一个包含 10 个字段的 csv 文件。我需要查找 hbase 以获取对应于 csv 字段之一的值。生成的 hbase 字段应附加到 csv 文件中。 使用 Nifi,我构建了以下流程。

GenerateFlowFile(创建 csv 记录)--> UpdateRecord(已配置 avro 模式名称以读取传入的 csv 文件)--> ConvertRecord (配置 CSV Reader & JSON writer)--> SplitJSON --> EvaluateJSONPath(为 hbase 查找获取行键)--> FetchHBaseRow(将输出作为流文件属性)

现在,挑战是读取 JSON 属性“hbase.row”的内容,选择 field-value 对中的一个,将其附加到流文件内容中

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    表达式语言有一个jsonPath函数:

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

    您应该能够使用 UpdateAttribute 创建一个包含提取字段的新属性,例如 firstName = ${myJson:jsonPath('$.firstName')} 会将 firstName 的值提取到名为 firstName 的属性中,从属性 myJson 开始。

    之后,您应该能够使用 UpdateRecord 将值添加到流文件内容中,假设您的架构具有该值的字段。

    【讨论】:

    • 谢谢布兰,jsonPath 帮助了我。来到问题的最后一部分......现在我有一个来自 hbase 查找的文件,我想将它添加到传入的流文件中并放入高清晰度电视。 UpdateRecord 无济于事,因为 i/p 架构有 10 个字段...其中,输出应该有 11 我正在使用 replaceText...
    • 为什么不创建具有 11 个字段的第二个模式,并在 UpdateRecord 中使用一个模式作为读取模式,另一个作为写入模式,或者总是有 11 个字段使一个字段可以为空,所以它是直到流程结束才填充?
    猜你喜欢
    • 2016-11-13
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 2012-05-16
    • 2017-04-27
    • 2013-09-05
    相关资源
    最近更新 更多