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
Probablemente sea un problema de URL, prueba el file:c:/path/to/data.csv
Ver mis publicaciones en el blog:
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