无法将CSV文件加载到Neo4j中

时间:2017-08-10 17:48:26

标签: csv neo4j cypher

我刚刚开始使用Neo4j,并尝试在YouTube上关注如何将CSV输入Neo4j的教程。

我正在使用以下代码尝试使用Cypher将我的CSV导入Neo4j:

xfox

但是,我一直收到这个错误:

  

Neo.ClientError.Statement.ExternalResourceFailed

任何帮助都将非常感谢:)

2 个答案:

答案 0 :(得分:2)

您应该将CSV文件放入Neo4j安装的导入目录中。对于OS X安装,此目录为<neo4j-home>/import

之后,您的LOAD CSV语句将如下所示:

LOAD CSV WITH HEADERS FROM "file:///LL.csv" As csvline MATCH(n)
RETURN n

即:文件URL相对于导入目录。

查看Neo4j File Locations docsImport CSV data guide

答案 1 :(得分:0)

解决方案:

这是在neo4j 3.0及更高版本中自动启用的安全功能。它不允许从文件系统中的任何位置加载文件。

您有2个解决方案/选项:

  1. 保持设置不变,只需将所有要读取的CSV文件放在安装目录(文件夹)中的“导入”目录(文件夹)中即可。
  2. 更改安全性功能,以允许从文件系统中的任何目录导入CSV。

选项1:

此选项很简单,只需将要读取的所有CSV文件复制并粘贴到安装目录(文件夹)中的“导入”目录(文件夹)中即可。

然后使用以下文件路径(例如,加载粘贴到导入目录(文件夹)中的CSV文件“ data.csv”

LOAD CSV file:///data.csv

选项2:

要允许导入任何URL或文件路径,必须导航至neo4j.conf文件。该文件位于安装目录的conf文件夹中。另外,您可以简单地搜索“ neo4j.conf”文件。

找到文件后,将其打开(使用记事本或其他工具)。然后确保没有注释掉下面的“ dbms.security.allow_csv_import_from_file_urls = true”(删除“#”)和&注释掉下面的“ dbms.directories.import = import”(添加“#”)。

# Determines if Cypher will allow using file URLs when loading data using
# `LOAD CSV`. Setting this value to `false` will cause Neo4j to fail `LOAD CSV`
# clauses that load data from the file system.
dbms.security.allow_csv_import_from_file_urls=true

# This setting constrains all `LOAD CSV` import files to be under the `import` 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