2015-02-08 9 views
10

В среде Windows я пытаюсь загрузить файл .csv с утверждением:Cypher Neo4j Не удалось загрузить внешний ресурс

LOAD CSV WITH HEADERS FROM "file:///E:/Neo4j/customers.csv" AS row 

Кажется, не работает должным образом и возвращается: не удалось загрузить внешний ресурс по адресу:

файл:/E: /Neo4j/Customers.csv Neo.TransientError.Statement.ExternalResourceFailure

Что я делаю неправильно? спасибо заранее

ответ

2

Это, вероятно, вопрос URL, попробуйте file:c:/path/to/data.csv

Смотрите мои сообщения в блоге:

+0

я использую Ubuntu и 1 попытался запустить URL в браузере. для меня файл был там. Я даже изменил разрешение на файл, чтобы проверить, является ли отказ загрузки ресурса из-за разрешения файла или нет. Ничего не помогло – proprius

0

Для системы Ubuntu, я поместил файл в /usr/lib/neo4j, который помог мне решить проблему. В каждом другом месте я пытался предоставить полные разрешения (777), но проблема осталась прежней. Перейдя через другую запись stackoverflow, я понял, что файл должен храниться в каталоге neo4j.

15

Я получал эту ошибку в Community Edition 3.0.1 на Mac OS X 10.10 Похоже, что LOAD CSV file:/// ищет файлы в предопределенном каталоге. Можно было бы подумать, что в аргументе, что один оператор Cypher дал бы полный путь, но это не так.

file:/// - для моей ситуации»означает, что Neo4j бы добавить данный аргумент вы дали одному, который уже был предопределенным, а затем идти искать этот путь комбинированного file:/// предопределенного каталог каталога не существует целиком /Users/User/Documents/Neo4j/default.graphdb/import, в моей структуре каталогов компьютеров у меня отсутствовала папка «/ import», которая не была создана при установке

Чтобы исправить в моей системе, я создал каталог «import», поместив файл в эту директорию. выполнил оператор загрузки Cypher. Я ТОЛЬКО ставил имя файла для чтения в аргументе файла, т.е.

LOAD CSV file:///data.csv 

Это сработало для меня.

+0

Вы подтвердили, что это будет похоже на Windows? –

+0

Это то же самое в Windows, вы просто создаете его в каталоге конфигурации вашей базы данных в директории/Documents/Neo4j. –

+0

Это было полезно! –

4

Похоже, что это конфигурация безопасности. Вот оригинальный ответ, который я нашел: https://stackoverflow.com/a/37444571/327004

Вы можете добавить следующие настройки в conf/neo4j.конф, чтобы обойти это:

dbms.security.allow_csv_import_from_file_urls=true

Или изменить директорию загрузки dbms.directories.import=import

1

Вы можете найти ответ в файле

"C:\Users\Jack\AppData\Roaming\Neo4j Community Edition\neo4j.conf" 

(выше «dbms.directories. import = import ")

Для версии neo4j-community_windows-x64_3_ 1_1 вам нужно прокомментировать эту строку или вам нужно создать папку \ import (которая не создана при установке) и добавить файл в папку.


Там подмигнули написано, что из соображений безопасности они только позволяют загрузку файлов из \ Documents \ Neo4j \ default.graphdb \ папка импорта

После комментирования на # dbms.directories.import = import, вы можете выполнить, например, от

LOAD CSV FROM "file:///C:/Users/Jack/Documents/products.csv" AS row 

В neo4j.conf у меня не было, чтобы добавить/комплект

dbms.security.allow_csv_import_from_file_urls=true 
0

Neo4j версия 3.1.1, ОС win10.

Для меня LOAD CSV будет читать от Neo4j_Database_Location/testDB/import/artists.csv.

Сначала я положил файл CSV на пути F: \ код \ Java \ HelloWorld \ artists.csv, и моего шифровальщик предложение

LOAD CSV FROM 'file:///F:\\code\\java\\helloworld\\artists.csv' AS line 
CREATE(:Artist {name:line[1],year:toInt(line[2])}) 

Тогда я получаю сообщение об ошибке возвращается следующим образом:

Couldn't load the external resource at: file:/D:/Neo4j/db/testDB/import/code/java/helloworld/artists.csv 

Это означает, что neo4j сам конкат путь к файлу. «D:/Neo4j/db/testDB/import /» - это местоположение базы данных Neo4j, а «код/​​java/helloworld/artist.csv» - это местоположение файла csv.

Например, я устанавливаю Neo4j по пути D: \ Neo4j \ Neo4j CE 3.1.1, а база данных - D: \ Neo4j \ db. Я помещаю CSV-файл в путь D: \ Neo4j \ db \ testDB \ import \ artist.csv. Если у вас нет папки «import» на пути, вы должны создать ее самостоятельно и поместить свой файл в папку «import».

Затем поместите файл CSV в пути, и вход Cyper предложение:

LOAD CSV from 'file:///artist.csv' as LINE 
CREATE(:Artist {name:line[1],year:toInt(line[2])}) 

Одним словом, как только вы поместите файл CSV в правильном пути, то проблема может быть решена.

Связанные в объяснениях LOAD CSV developer-manal

Если dbms.directories.import установлено на импорт значения по умолчанию, используя вышеуказанные адреса в НАГРУЗКАХ CSV будет читать из /import/myfile.csv и импорт/MyProject/myfile.csv соответственно. Если он установлен в/data/csv, используя приведенные выше URL-адреса в LOAD CSV, будет считываться из /data/csv/myfile.csv и /data/csv/myproject/myfile.csv соответственно.

0

В рабочем столе Neo4j выберите базу данных, которую вы используете, перейдите к настройке и там вы найдете решение ... просто закомментируйте строку «dbms.directories.import = импорт»

# Это установка ограничивает все файлы импорта LOAD CSV под каталогом import. Удалить или прокомментировать это до

# разрешить загрузку файлов из любой точки файловой системы; это создает возможные проблемы с безопасностью. См.

# LOAD CSV раздел руководства для деталей.

dbms.directories.import = импорт ### закомментировать эту строку

Смежные вопросы