Apache nifi将年,月和日时间戳附加到合并的输出文件中

问题描述 投票:0回答:2

我正在创建端到端流,以通过对通过Tealium事件流接收的Json文件使用Consume Kafka来将数据消耗到HDFS中。当前,我使用了Consume Kafka->评估Json路径-> Jolttransform Json->合并内容->评估Json路径->更新属性-> PutHDFS

[要求是将整天假脱机的Json数据读取到一个引用属性postdate(之前为YYYYMMDDSS时间戳的隐含时期)的单个文件中,并每天读取数据以合并为单个文件,最后根据与POST_DATE字段用于区分每日文件。除了根据源属性时间戳字段重命名合并文件的时间戳之外,我已经完成了所有部分。您能帮我如何根据_year_month_day属性重命名文件吗?

apache-nifi cloudera hortonworks-data-platform mapr apache-nifi-registry
2个回答
0
投票

如果要从POST_DATE属性中分析“年”和“月”,则可以使用formattoDate功能。

例如:

-- year
format(toDate(${POST_DATE}, "YYYYMMDDSS"),"yyyy")

-- month
format(toDate(${POST_DATE}, "YYYYMMDDSS"),"MM")

--day
format(toDate(${POST_DATE}, "YYYYMMDDSS"),"dd")

我不确定重命名文件的含义,如果这意味着在放入HDFS之前更改文件名,则可以简单地使用UpdateAttribute处理器,然后update属性包含输出文件名,例如${year}_${month}_${day}


0
投票

@@ gogocatmario,感谢您的答复。在update_attribute上为filename属性添加以下值后,问题已解决。tealium_es _ $ {post_date:toDate(“ yyyy-MM-dd HH:mm:ss”):format(“ yyyy_MM_dd”)}。json1

© www.soinside.com 2019 - 2024. All rights reserved.