Сбой импорта графона JanusGraph 3.x на предварительном json

У кого-нибудь еще есть эта проблема с импортом prettified json/graphson в JanusGraph?

Точно такой же файл, но без предварительной обработки (без возврата каретки, табуляций, пробелов) будет импортирован без ошибок, но если он предварительно обработан, произойдет сбой со следующей ошибкой:

graph.io(graphson()).readGraph("data/tgraph2.json")

Could not deserialize the JSON value as required. Nested exception: java.lang.InstantiationException: Cannot deserialize the value with the detected type contained in the JSON ('tinker:graph') to the type specified in parameter to the object mapper (class java.util.LinkedHashMap). Those types are incompatible. at [Source: (ByteArrayInputStream); line: 1, column: 3]

Обратите внимание, что при редактировании файла для удаления первого разрыва строки вручную сообщение об ошибке изменяется на ... at [Source: (ByteArrayInputStream); line: 1, column: 12]и т. д., так что это определенно проблема с пробелами в файле.

Версия 3.х

Конечно, это нежелательное поведение. json должен работать одинаково независимо от того, преттеттирован ли он с помощью пробелов или минимизирован.

1 ответ

Следует помнить, что существует две формы GraphSON. В одной форме весь файл не является единым документом JSON, а представляет собой каждую строку. Каждая строка представляет собой список смежности для вершины.

Это формат GraphSON по умолчанию, и он предназначен для потоковой передачи и позволяет легко разбивать файл для многопоточных операций. Другая форма представляет собой единый документ JSON, содержащий все вершины, а затем и все ребра.

Форматы описаны здесь

http://tinkerpop.apache.org/docs/3.4.1/dev/io/#graphson

Другие вопросы по тегам