Загрузка файла CSV в Neo4J, работающий в Docker

У меня Neo4J работает в Docker (Windows 10). Я хочу импортировать в него большой CSV-файл, используя Node и neo4j-driver,

Мой запрос (ограничен 5 строками, для целей тестирования):

let csvPath = 'file:///C:/Users/Test/largefile.csv';

let query = `
  USING PERIODIC COMMIT
  LOAD CSV FROM '${csvPath}' AS line
  WITH line LIMIT 5
  MERGE (:Person {name: line[1]})-[:connected_to]->(:Person {name: line[2]})
`;

Независимо от того, что я пытаюсь указать на пути, водитель продолжает искать file:/var/lib/neo4j/import/C:/Users/Test/largefile.csv,

Я пытался с / без буквы диска; попробовал локальный файл и используя ./; пробовал разные пути - драйвер всегда ищет файл в /var/lib/neo4j/import хотя у меня нет такой папки на моей машине.

Можно ли импортировать файл с моего хост-компьютера или мне нужно будет скопировать его в контейнер Docker, в эту структуру папок?

1 ответ

Решение

Вам нужно будет скопировать его в Docker-контейнер или в каталог, который в нем сопоставлен; Neo4J по умолчанию поддерживает загрузку только CSV из своего import каталог, и все пути загрузки CSV будут относительно этого.

Это с опциями "из коробки"; изменив dbms.directories.import переменная в файле конфигурации, это можно изменить, но это явно не рекомендуется в документации Neo4J.

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