Nifi:如何使用fileFileter从hadoop获取文件?

Nifi:如何使用fileFileter从hadoop获取文件?,hadoop,groovy,apache-nifi,Hadoop,Groovy,Apache Nifi,我想根据文件名从hadoop目录中获取文件,逻辑上看起来像${filename}.*(因为我有几个文件的名称类似,它们看起来像2011-01-01.1、2011-01-01.2等)。我尝试使用listhdfs+fetchhdfs,但它们与我的逻辑不匹配 你能告诉我在nifi环境下如何做吗 是否可以通过ExecuteScript处理器中的groovy代码来完成此任务 如何通过groovy代码连接hdfs目录 在获得这些文件后,我应该将它们放在一个流文件列表中,并且在流文件列表大小与计数属性(放在流

我想根据文件名从hadoop目录中获取文件,逻辑上看起来像${filename}.*(因为我有几个文件的名称类似,它们看起来像2011-01-01.1、2011-01-01.2等)。我尝试使用listhdfs+fetchhdfs,但它们与我的逻辑不匹配

  • 你能告诉我在nifi环境下如何做吗
  • 是否可以通过ExecuteScript处理器中的groovy代码来完成此任务
  • 如何通过groovy代码连接hdfs目录
  • 在获得这些文件后,我应该将它们放在一个流文件列表中,并且在流文件列表大小与计数属性(放在流文件中)的值不匹配之前,不能传输流文件
  • 莎乐美

    使用ListHDFS可以列出HDFS中存在的每个文件

    之后,您可以使用“RouteOnAttribute”以下面的模式匹配文件,然后您可以获取这些文件

    ${filename:matches('\d{4}-\d{2}-\d{2}.\d')}
    
    现在,它与HDFS中存在的文件匹配,并以匹配的路径出现

    接下来在要匹配的RouteOnAttribute之后使用FetchFile

    在这里,您可以使用模式为
    “\d{4}-\d{2}-\d{2}的获取文件。\d”


    它将只获取您所需的文件。

    我如何找到具有\d{4}-\d{2}-\d{2}.\d此格式存在?对于我来说,检查类似的流文件编号是否等于count属性很重要