无法将CSV文件加载到Neo4j中

无法将CSV文件加载到Neo4j中,csv,neo4j,cypher,Csv,Neo4j,Cypher,我刚刚开始使用Neo4j,并尝试跟随YouTube上关于如何将CSV导入Neo4j的教程 我正在使用下面的代码尝试使用Cypher将我的CSV导入Neo4j: LOAD CSV WITH HEADERS FROM "file:/Users/MATT/Documents/LL.csv" As csvline MATCH(n) RETURN n 但是,我一直收到这个错误: Neo.ClientError.Statement.externalResource失败 任何帮助都将不胜感激:)您应该将您的

我刚刚开始使用Neo4j,并尝试跟随YouTube上关于如何将CSV导入Neo4j的教程

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

LOAD CSV WITH HEADERS FROM "file:/Users/MATT/Documents/LL.csv" As csvline
MATCH(n) RETURN n
但是,我一直收到这个错误:

Neo.ClientError.Statement.externalResource失败


任何帮助都将不胜感激:)

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

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

LOAD CSV WITH HEADERS FROM "file:///LL.csv" As csvline MATCH(n)
RETURN n
即:文件URL相对于导入目录

查看和。

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

您有两种解决方案/选项:

  • 保持设置不变,只需将所有要读取的CSV文件放在安装目录(文件夹)中的“导入”目录(文件夹)中即可
  • 更改安全特性以允许从文件系统中的任何目录导入CSV
  • 备选案文1: 此选项非常简单,只需复制并粘贴所有CSV文件,以便在安装目录(文件夹)中的“导入”目录(文件夹)中读取

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

    备选案文2: 要允许导入任何url或文件路径,您必须导航到neo4j.conf文件。该文件位于安装目录的conf文件夹中。或者,您可以简单地搜索“neo4j.conf”文件

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


    无法加载以下位置的外部资源:file:/Users/MATT/Documents/Neo4j/default.graphdb/import/Users/MATT/Documents/LL.csv我一直在研究您所说的内容,但无法解决问题。它似乎已找到资源,但无法扩展提取它。您的代码很有用,可能是因为我创建了一个错误。请尝试添加行
    dbms.security。在neo4j.conf文件中允许\u csv\u import\u from\u file\u urls=true
    。@但是您尝试过上面的建议吗?谢谢!一旦您将文件放入导入文件夹,neo4j将使用相对于该文件夹的路径,因此您还可以更改您的设置命令:从“加载带有标题的CSV”file://LL.csv“注意:对于在Neo4j中创建的每个数据库/图形,必须导航到该数据库/图形的Neo4j.conf文件,并重复上面的过程大纲。
    LOAD CSV file:///data.csv
    
    # 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