Apache NiFi PartitionRecord处理器:缺失created_at时填充当前日期至partition_date
NiFi PartitionRecord处理器动态属性表达式写法
直接使用NiFi表达式语言实现需求的写法如下:
${created_at:isEmpty():ifElse(${now():format('yyyy-MM-dd')}, ${created_at})}
表达式说明:
created_at:isEmpty():检查created_at属性是否不存在或者属性值为空字符串,两种情况都会返回trueifElse(返回值1, 返回值2):如果前面的判断为true(无created_at字段或字段为空),则执行第一个参数返回当前日期;否则执行第二个参数返回原created_at的值now():format('yyyy-MM-dd'):获取NiFi节点的当前系统时间,并格式化为yyyy-MM-dd格式,你可以根据分区路径需求调整格式,比如改成yyyy/MM/dd(适合目录分区)或者yyyyMMdd(适合字符串分区)
额外适配场景:
如果你的created_at是时间戳(比如毫秒数)或非标准日期字符串,需要先转换为统一日期格式再使用,示例如下:
${created_at:isEmpty():ifElse(${now():format('yyyy-MM-dd')}, ${created_at:toDate('yyyy-MM-dd HH:mm:ss'):format('yyyy-MM-dd')})}
这里toDate('yyyy-MM-dd HH:mm:ss')需要替换为created_at实际的时间格式,确保能正确解析。
内容的提问来源于stack exchange,提问作者Vlad Aleshin
相关产品推荐
相关产品推荐

