Apache NIFI:从数据流内容拆分并转换为 Json 属性
Apache NIFI: From Dataflow Content Splitted and Converted to Json Attributes
我从我的 Apache Kafka 获得了以下流文件内容,我的目标是将这些数据拆分为不同的属性。
例如
日期
距离
等等
然后转换此属性 Json(我知道我需要哪个处理器)
但我不知道,拆分功能需要哪个 Nifi 处理器以及配置应该是什么样子
示例内容
2016-09-08 16:40:32.215|39|11|Jamie Engesser|1594289134|孟菲斯到小石城 2 号线|正常|40.76|-88.77|1000
取消
如果每个输入流文件都是单行记录,您可以使用这样的流:
- ExtractText - 将单个文本记录提取到属性中。这可能就像使用默认行设置使用正则表达式
(.*)
添加自定义 属性 "line" 一样简单。
- UpdateAttribute - 将行外的各个字段解析为单独的属性。 NiFi 表达式语言中的 getDelimitedField 函数在这里很有用。例如,
${line:getDelimitedField(1, "|")}
获取日期,${line:getDelimitedField(6, "|")}
获取路线 "Memphis to Little Rock Route 2"。
我从我的 Apache Kafka 获得了以下流文件内容,我的目标是将这些数据拆分为不同的属性。
例如 日期 距离 等等
然后转换此属性 Json(我知道我需要哪个处理器)
但我不知道,拆分功能需要哪个 Nifi 处理器以及配置应该是什么样子
示例内容
2016-09-08 16:40:32.215|39|11|Jamie Engesser|1594289134|孟菲斯到小石城 2 号线|正常|40.76|-88.77|1000 取消
如果每个输入流文件都是单行记录,您可以使用这样的流:
- ExtractText - 将单个文本记录提取到属性中。这可能就像使用默认行设置使用正则表达式
(.*)
添加自定义 属性 "line" 一样简单。 - UpdateAttribute - 将行外的各个字段解析为单独的属性。 NiFi 表达式语言中的 getDelimitedField 函数在这里很有用。例如,
${line:getDelimitedField(1, "|")}
获取日期,${line:getDelimitedField(6, "|")}
获取路线 "Memphis to Little Rock Route 2"。