csv neo4j load

csv - Cypher Neo4j No se pudo cargar el recurso externo



load (6)

En un entorno de Windows, estoy intentando cargar un archivo .csv con una declaración:

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

Parece que no funciona correctamente y devuelve: No se pudo cargar el recurso externo en:

file: / E: /Neo4j/Customers.csv Neo.TransientError.Statement.ExternalResourceFailure

¿Qué estoy haciendo mal? gracias por adelantado



Para el sistema ubuntu, coloqué el archivo en /usr/lib/neo4j que me ayudó a resolver el problema. En cualquier otra ubicación, traté de dar permisos completos (777) pero el problema sigue siendo el mismo. Después de pasar por otra publicación de , me di cuenta de que el archivo debe mantenerse en el directorio neo4j.


Recibí este error en Community Edition 3.0.1 en Mac OS X 10.10 Parece que el file:/// LOAD CSV file:/// busca archivos en un directorio predefinido. Uno podría pensar eso en el argumento de que uno le daría a la declaración Cypher el camino completo, pero ese no es el caso.

El file:/// - para mi situación "significaba que neo4j anexaría el argumento dado que le dio a uno que ya estaba predefinido y luego buscaría esa ruta combinada. El file:/// directorio de directorio predefinido no existía del todo. /Users/User/Documents/Neo4j/default.graphdb/import , en la estructura de mi directorio de computadoras me faltaba la carpeta "/ import", que no se creó durante la instalación

Para solucionarlo, creé un directorio de "importación" y puse el archivo a leer en ese directorio. Ejecuté la declaración de carga Cypher. SOLAMENTE pongo el nombre del archivo para leer en el argumento del archivo, es decir,

LOAD CSV file:///data.csv

esto funcionó para mí.


Puedes encontrar la respuesta en el archivo

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

(arriba "dbms.directories.import = import")

Para la versión neo4j-community_windows-x64_3_1_1, tiene que comentar esta línea o tiene que crear la carpeta / import (que no se creó mediante la instalación) y agregar su archivo a la carpeta.

Allí está escrito que, por razones de seguridad, solo permiten la carga de archivos desde la carpeta / Documents / Neo4j / default.graphdb / import

Después de comentar en # dbms.directories.import = import, puede ejecutar, por ejemplo, desde

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

En neo4j.conf no tuve que agregar / configurar

dbms.security.allow_csv_import_from_file_urls=true


La versión de Neo4j es 3.1.1, el sistema operativo es win10.

Para mí, LOAD CSV leería de Neo4j_Database_Location / testDB / import / artists.csv .

Al principio, puse el archivo csv en la ruta F: / code / java / helloworld / artists.csv, y mi oración cypher es

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

Luego recibo el mensaje de error devuelto de la siguiente manera:

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

Significa neo4j concatena la ruta del archivo. "D: / Neo4j / db / testDB / import /" es la ubicación de la base de datos Neo4j, y el "código / java / helloworld / artists.csv" es la ubicación del archivo csv.

Por ejemplo, instalé Neo4j en la ruta D: / Neo4j / Neo4j CE 3.1.1, y la ubicación de la base de datos es D: / Neo4j / db. Puse el archivo CSV en la ruta D: / Neo4j / db / testDB / import / artist.csv. Si no tiene la carpeta de archivos "importar" en la ruta, debe crearla usted mismo y poner su archivo en la carpeta "importar".

Luego, coloque su archivo csv en la ruta e ingrese la frase cyper:

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

En una palabra, una vez que coloca el archivo CSV en el camino correcto, el problema puede ser resuelto.

Explicación relacionada en LOAD CSV developer-manal

Si dbms.directories.import se establece en la importación del valor predeterminado, utilizando las direcciones URL anteriores en LOAD CSV leerá desde /import/myfile.csv e import / myproject / miarchivo.csv, respectivamente. Si está configurado en / data / csv, utilizando las URL anteriores en LOAD CSV leerá desde /data/csv/myfile.csv y /data/csv/myproject/myfile.csv, respectivamente.


Parece ser una configuración de seguridad. Aquí está la respuesta original que encontré: https://.com/a/37444571/327004

Puede agregar la siguiente configuración en conf / neo4j.conf para omitir esto:

dbms.security.allow_csv_import_from_file_urls=true

O cambie el directorio de importación dbms.directories.import=import