1

我目前正在使用 gradle mlExportToFile 将 json 文档导出到文件中。但是,我需要最终文件采用换行符分隔的 JSON 格式,每个文档在文件中单独一行。我看到 mlExportToFile + REST 转换方法可用于创建 CSV,所以我假设这种方法也适用于 NDJSON。我已经尝试了我能想到的所有东西,但文件仍然没有将记录放在自己的行上。任何意见是极大的赞赏!!

4

1 回答 1

2

我认为这里的限制是,当底层 ExportToWriterListener(来自 ML Java 客户端/DMSDK 库)将以从 ML 检索到的格式将文档写入文件时,默认情况下将在其中包含换行符。ml-gradle 任务只是一行代码runQueryBatcherJob(new ExportToFileJob())——因此您可以轻松自定义自己的任务。

我相信您可以重用 ExportToFileJob (在 marklogic-data-movement-components 项目中) - 它有一个getExportListener()返回ExportToWriterListener(在 marklogic-client-api 项目中)的方法。这有一个onGenerateOutput(OutputListener)方法,您可以在其中编写一个OutputListener将 JSON 压缩成一行的方法。

这当然也可能成为 ml-gradle 的新功能;即诸如 的属性-PnewlineDelimitedJson=true

随意在 ml-gradle 项目中为此提出票(尽管实际上将在marklogic-data-movement-components项目中进行增强)。

于 2020-11-25T14:15:28.027 回答