作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 GetFile 处理器获取的文件。
由此生成的流文件具有一个属性(文件名)。
我想将这个值为“ABC_gh_1245_ty.csv”的“文件名”属性按“_”拆分为多个属性
ATTR1 = "ABC"
ATTR2 = "gh"
ATTR3 = "1245"
ATTR4 = "ty.csv"
我认为 nifi 1.7.1 中没有可用于此功能的处理器
我用谷歌搜索并找到了这个自定义处理器: https://github.com/guvencenanguvenal/nifi-splitcreateattribute
还是不行。错误提示“找不到属性”
最佳答案
要解决此问题,您可以利用 ExecuteScript
或 ExecuteGroovyScript
处理器。下面的脚本就可以很好地完成这项工作。不过它是用 Groovy 编写的。
flowFile = session.get()
if (!flowFile)
return
filename = flowFile.getAttribute('filename')
splits = filename.split('_')
attrsMap = [:]
splits.eachWithIndex {
split, index -> attrsMap.put("ATTR" + index, split)
}
attrsMap.each{ k, v -> println "${k}:${v}" }
flowFile = session.putAllAttributes(flowFile, attrsMap)
session.transfer(flowFile, REL_SUCCESS)
屏幕截图
关于java - 将 Nifi 属性值拆分为多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54034846/
我是一名优秀的程序员,十分优秀!