groovy - NiFi:根据属性过滤流文件
问题描述
我有一个创建两个不同流文件的工作流。我想根据条件过滤一个特定的流文件并将其发送到下一个处理器。
到目前为止我的工作
def ff=session.get()
if(!ff)return
def flowFiles=session.get(2)
if(!flowFiles || flowFiles.size() < 2) return
def ff = flowFiles.find{ it.getAttribute("receive_date_filter") != null }
def original = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z")
def target = new SimpleDateFormat("yyyy-MM-dd")
def received_date = ff."received_date"
def received_date_filter = ff."receive_date_filter"
def original_parsed = original.parse(received_date)
def received_date_filter_parsed = target.parse(received_date_filter)
def subject = ff."email.headers.subject"
def subject_regex = ff."subject"
def pattern = subject =~ subject_regex
ff_old = flowFiles.find{ it.getAttribute("receive_date_filter") == null }
if (received_date_filter.isEmpty() && subject.isEmpty()){
REL_SUCCESS << ff_old
}
if (subject.isEmpty()){
if (original_parsed.after(received_date_filter_parsed)){
REL_SUCCESS << ff_old
} else {
REL_FAILURE << ff
}
} else {
if (pattern && original_parsed.after(received_date_filter_parsed)){
REL_SUCCESS << ff_old
} else {
REL_FAILURE << ff
}
}
但它是抛出传输关系未指定错误
解决方案
推荐阅读
- r - 将向量重命名为向量名称和 df 名称的混合
- python - Pandas 的条件平均值
- c# - C# 后台工作人员 - 我应该同时使用多少?
- c# - 使用 Enumerable.Repeat 进行容量列表初始化的问题
- python - 自动将 `stackedWidget` 页面的高度调整为放置在其上的小部件的高度
- flutter - 如何制作一个看起来像这样在颤动中弹出的按钮
- scala - 使用 Spark ML 计算 PCA 时出现 IllegalArgumentException
- python - 请求非常慢,有时会返回错误
- java - 使用 BufferedImage 进行多线程绘图
- php - 如何从 laravel forge 中删除表?(无法 delpoy 服务器)