【问题标题】:Using Nifi to append rows to a csv使用 Nifi 将行附加到 csv
【发布时间】:2019-10-19 05:16:01
【问题描述】:

我们每天都有来自 FTP 站点的 csv 文件。我们需要做的是将当天 csv 中的新行添加到当前存在于 HDFS 目录中的文件中。我们目前的流程是:

  1. 让 SFTP 处理器从站点中提取文件
  2. 更新属性根据文件名创建一个 HDFS 文件夹
  3. Update Attribute 还会根据年份创建一个子文件夹
  4. 文件然后转储到 HDFS 子文件夹中

总共大约有 8 个单独的目录,即“sales_report”、“inventory”、“personnel”等。对于这些文件夹中的每一个,我们希望将其中的 csv 文件附加到而不是新的,每天都有单独的文件。

最好的方法是什么?我知道我需要一个 csv 读取器和写入器服务,但我不确定要使用哪些处理器以及我需要什么样的 nifi 表达式(如果有的话)。任何详细的答复将不胜感激。

此外,从技术上讲,生成的文件不需要是 csv,只要它是 Hive 可以识别的格式。

【问题讨论】:

    标签: csv merge hive apache-nifi


    【解决方案1】:

    PutHDFS 处理器具有用于冲突解决的属性,带有附加选项。

    “如果有,则附加到现有文件,否则创建一个新文件。”

    【讨论】:

    • 谢谢你的回答,布莱恩。我的印象是这个选项只是将字符附加到文件名(为了避免文件名冲突)。不是这样吗?
    • 它将流文件的内容附加到已经存在的内容中,但它不知道要附加的数据,它只是在现有字节之后写入更多字节,所以它只对csv应该是“可附加”的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2015-06-30
    • 1970-01-01
    • 2019-10-03
    • 2018-05-16
    相关资源
    最近更新 更多