#marklogic #ml-gradle #marklogic-10
#marklogic #ml-gradle #marklogic-10
Вопрос:
В настоящее время я использую gradle mlExportToFile для экспорта документов json в файл. Однако мне нужно, чтобы конечный файл был в формате JSON, разделенном новой строкой, с каждым документом в отдельной строке внутри файла. Я видел, что метод mlExportToFile REST transform можно использовать для создания CSV, поэтому я предполагаю, что этот подход также будет работать для NDJSON. Я перепробовал практически все, что мог придумать, и файл по-прежнему не помещает записи в свои собственные строки. Любые советы приветствуются!!
Комментарии:
1. Я не знаю, что такое «mlExportToFile», но вы, вероятно, могли бы написать небольшую задачу Gradle, которая красиво печатает файл json после его экспорта. Это сработает для вас?
Ответ №1:
Я думаю, что ограничение здесь заключается в том, что когда базовый ExportToWriterListener (из библиотеки Java-клиента ML / 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).
Комментарии:
1. Спасибо, это действительно полезно!