In a Windows environment, I'm trying to load a .csv file with statement:
LOAD CSV WITH HEADERS FROM "file:///E:/Neo4j/customers.csv" AS row
It seems not to work properly and returns: Couldn't load the external resource at:
file:/E:/Neo4j/Customers.csv Neo.TransientError.Statement.ExternalResourceFailure
What am I doing wrong? thanks in advance
In the Neo4j desktop select the database you are using, go to the setting and there you will find the solution... just comment the "dbms.directories.import=import" line
# This setting constrains all
LOAD CSV
import files to be under theimport
directory. Remove or comment it out to# allow files to be loaded from anywhere in the filesystem; this introduces possible security problems. See the
#
LOAD CSV
section of the manual for details.dbms.directories.import=import ### COMMENT THIS LINE
On (Arch) Linux +
neo4j-community-3.4.0-alpha09
, edit$NEO4J_HOME/conf /neo4j.conf
:dbms.security.allow_csv_import_from_file_urls=true
#dbms.directories.import=import
Restart neo4j (in terminal:
neo4j restart
), and reload the Neo4j Browser (http://localhost:7474/browser/
) if you are using a web browser as your Neo4j interface/GUI.Then, you should be able to load a csv from outside your
$NEO4J_HOME/...
directoryE.g.,
LOAD CSV WITH HEADERS FROM "file:///mnt/Vancouver/Programming/data/metabolism/practice/a.csv" AS ...
where my
$NEO4J_HOME/
is/mnt/Vancouver/apps/neo4j/neo4j-community-3.4.0-alpha09/
LOAD CSV WITH HEADERS FROM "file:/mnt/Vancouver/Programming/data/metabolism/practice/a.csv" AS ...
also works, but not
LOAD CSV WITH HEADERS FROM "file://mnt/Vancouver/Programming/data/metabolism/practice/a.csv" AS...
or
LOAD CSV WITH HEADERS FROM "/mnt/Vancouver/Programming/data/metabolism/practice/a.csv" AS...
i.e. use
...file:/...
or...file:///...
You can find the answer in the file
(above "dbms.directories.import=import")
For version neo4j-community_windows-x64_3_1_1 you have to comment out this line or you have to create the folder \import (which isn´t created through the installation) and add your file into the folder.
There it´s written that due to security reasons they only allow file load from the \Documents\Neo4j\default.graphdb\import folder
After commenting out on # dbms.directories.import=import , you can execute e.g. from
In neo4j.conf I didn´t have to add/set
For the ubuntu system, I placed the file in
/usr/lib/neo4j
which helped me solved the issue. On every other location, i tried giving full permissions(777) but the problem remains the same. After going through another stackoverflow post, i realized that the file should be kept in neo4j directory.It appears to be a security configuration. Here's the original answer I found: https://stackoverflow.com/a/37444571/327004
Or change the import directory
dbms.directories.import=import
I was getting this error on Community Edition 3.0.1 on Mac OS X 10.10 It appears that the LOAD CSV
file:///
looks for files in a predefined directory. One would think that in the argument that one would give the Cypher statement the full path but that is not the case.The
file:///
- for my situation" meant that neo4j would append the given argument you gave to one that was already predefined and then go look for that combined path Thefile:///
pre-defined directory directory did not exist entirely/Users/User/Documents/Neo4j/default.graphdb/import
, in my computers directory structure I was missing the "/import" folder, which was not created at installTo fix on my system, I created an "import" directory, put the file to be read in that directory. I executed the Cypher load statement I ONLY put the name of the file to be read in the file argument i.e.
this worked for me.