【问题标题】:Extract filname and store the name in a new column in csv file提取文件名并将名称存储在 csv 文件的新列中
【发布时间】:2018-08-14 16:55:59
【问题描述】:

我想提取文件名并将文件名存储在 CSV 文件的现有列之一中。这个怎么做?使用哪个处理器?什么配置? 例如,我有一个文件名“FE_CHRGRSIM_20171207150616_CustRec.csv”,我想提取“FE_CHRGRSIM_20171207150616”并将此值存储在相同 CSV 文件中的现有列下。请帮忙。 TIA

【问题讨论】:

    标签: regex apache apache-nifi


    【解决方案1】:

    通常,“真实”文件名可用作流文件的属性,称为“文件名”。您可以将 UpdateRecord 与“字面值”的替换策略一起使用;添加名为/filename 的用户定义属性并将值设置为${filename:substringBeforeLast('.')}。您需要确保将“文件名”字段添加到您的架构中(通过 UpdateRecord 或手动添加)。如果您不提前知道您的 CSV 架构,您可以使用 InferAvroSchema,它会尝试找出答案。

    如果 UpdateRecord 和架构内容似乎不适合您,另一种选择(因为它是 CSV)是使用 ReplaceText,匹配整行,然后替换为该值,后跟 ,${filename:substringBeforeLast('.')}。这应该将文件名(已删除扩展名)添加为传出 CSV 中的最后一列。

    【讨论】:

      猜你喜欢
      • 2013-11-05
      • 2017-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 2015-04-02
      • 1970-01-01
      相关资源
      最近更新 更多