【问题标题】:How to use gradle mlExportToFile and REST Transform to Create NDJSON File如何使用 gradle mlExportToFile 和 REST Transform 创建 NDJSON 文件
【发布时间】:2021-03-07 14:36:50
【问题描述】:

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

【问题讨论】:

  • 我不知道“mlExportToFile”是什么,但您可能会编写一个小的 Gradle 任务,在导出 json 文件后漂亮地打印它。这对你有用吗?

标签: marklogic ml-gradle marklogic-10


【解决方案1】:

我认为这里的限制是,当底层 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等属性。

对此请随时 raise a ticket in the ml-gradle project(尽管实际上将在 marklogic-data-movement-components 项目中进行增强)。

【讨论】:

  • 谢谢,这真的很有帮助!
猜你喜欢
  • 2019-12-20
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多