无法使用流集将 JSON 响应转储到 CSV 文件中的 FTP 服务器

Not able to dump JSON response to a FTP server in a CSV file using streamsets

我使用 HTTP 客户端 > Field Pivoter > Field Flattenner 创建了一个管道 > SFTP/FTP/FTPS 客户端

我只是想从 returns JSON 的 HTTP API 获取数据,并将其响应转储到 CSV 文件中的 FTP 服务器。

当我尝试预览它时 "Write to Destination and Executors" 我收到这个错误

com.streamsets.pipeline.lib.generator.DataGeneratorException: WHOLE_FILE_GENERATOR_ERROR_0 - Whole File Format Error. Reason : java.lang.IllegalArgumentException: Record does not contain the mandatory fields /fileRef,/fileInfo,/fileInfo/size for Whole File Format.

我查看了文档,关于它的含义和解决方法的内容不多。

在最后一个块 FTP 客户端目标中,我将文件名表达式指定为 ${record:value('/fileInfo/filename')}.csv

如果我在预览时不选中 "Write to destination and executor" 复选框,我可以看到所有数据及其转换。但是当我试图转储时,它显示了那个错误。

我该如何解决?

遗憾的是,无法直接从 FTP 客户端目标写入 CSV 数据。一种方法是在一个管道中将数据写入本地磁盘,然后在一秒钟内将文件移动到 FTP 服务器。

备注:

  • 您的第一个管道将使用 'Delimited' 数据格式的本地 FS 目标。
  • 您的第二个管道将使用目录源和 SFTP/FTP/FTPS 客户端目标,两者都设置为 'Whole File' 数据格式。