csv - 使用 Nifi 将行附加到 csv
问题描述
我们每天都有来自 FTP 站点的 csv 文件。我们需要做的是将当天 csv 中的新行添加到当前存在于 HDFS 目录中的文件中。我们目前的流程是:
- 获取 SFTP 处理器从站点获取文件
- 更新属性根据文件名创建一个 HDFS 文件夹
- 更新属性还会根据年份创建一个子文件夹
- 然后将该文件转储到 HDFS 子文件夹中
总共有大约 8 个单独的目录,即“sales_report”、“inventory”、“personnel”等。对于这些文件夹中的每一个,我们希望将其中的 csv 文件附加到,而不是为每天。
最好的方法是什么?我知道我需要一个 csv 读取器和写入器服务,但我不确定要使用哪些处理器以及我需要什么样的 nifi 表达式(如果有的话)。任何详细的答复将不胜感激。
此外,从技术上讲,生成的文件不需要是 csv,只要它是 Hive 可以识别的格式。
解决方案
PutHDFS 处理器具有用于冲突解决的属性,并带有附加选项。
“如果有,附加到现有文件,否则创建一个新文件。”
推荐阅读
- android - Gradle,不同的“平台(”)与否?
- java - org.springframework.web.reactive.function.UnsupportedMediaTypeException:bodyType= 不支持内容类型'text/html;charset=iso-8859-1'
- r - Emacs:运行 R shell
- ruby-on-rails - 结合 Rails 搜索模式 'matches' 和 'LIKE'
- mysql - Google Apps - Mysql 连接失败
- java - RecyclerView 和 GONE 可见性问题
- r - 如何以特定 id 为条件运行回归?
- c# - 如何在 KeyDown 方法之外的 C# Windows Form App 中抑制 Windows Beep?
- makefile - 在 Makefile 中使用条件指令
- python - 返回上周三日期的较短方法