В настоящее время я использую gradle mlExportToFile для экспорта документов json в файл. Однако мне нужно, чтобы окончательный файл был в формате JSON с разделителями новой строки, где каждый документ находился в отдельной строке в файле. Я видел, что метод преобразования mlExportToFile + REST можно использовать для создания CSV, поэтому я предполагаю, что этот подход также будет работать для NDJSON. Я перепробовал почти все, что мог придумать, и файл все еще не размещает записи на своих строках. Любые советы высоко ценится!!
Как использовать gradle mlExportToFile и REST Transform для создания файла NDJSON
Ответы (1)
Я думаю, что ограничение здесь заключается в том, что когда базовый ExportToWriterListener (из библиотеки ML Java Client/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- компоненты проекта).