【问题标题】:Load CSV Fails in Cypher + Neo4j "LoadExternalResourceException: Couldn't load the external resource at:"在 Cypher + Neo4j 中加载 CSV 失败“LoadExternalResourceException:无法在以下位置加载外部资源:”
【发布时间】:2014-11-26 18:52:19
【问题描述】:

我在运行 Ubuntu 14.04 的企业云服务器上全新安装了 Neo4j 2.1.4 开源。我正在将 CSV 文件导入数据库。我的文件的路径是'/home/username/data-neo4j/node.csv'

以下是我从 Neo4j 命令行工具 neo4j-shell 运行的命令:

LOAD CSV WITH HEADERS FROM "file:///home/username/data-neo4j/node.csv" AS line CREATE (:Node { nid: toInt(line.nid), title: line.title, type: line.type, url: line.url});

这会返回:

LoadExternalResourceException: Couldn't load the external resource at: file:/home/user/data-neo4j/node.csv

这看起来像是一条消息,说它找不到文件。但是,该文件已到位。我什至尝试将文件的权限更改为 755。

我的本​​地机器上有一个单独的 Neo4j 实例(带有 Neo4j 2.1.2 Enterprise 的 OSX)。鉴于我切换了要匹配的路径,该命令在我的本地机器上是成功的。

我在运行 neo4j-shell 时注意到一件事,我得到了NOTE: Remote Neo4j graph database service 'shell' at port 1337。我打开了这个端口,我的命令仍然返回同样的错误信息。

我也阅读了这个链接 - 但他们的问题是他们没有上传他们的文件。我的文件已经到位。

neo4j LOAD CSV returns Couldn't Load external resource

【问题讨论】:

    标签: csv neo4j cypher load-csv


    【解决方案1】:

    一位同事帮我调试了这个。

    问题是权限。在 Linux 中,neo4j 有自己的用户“neo4j”。该用户无权访问 /home/myuser/data-neo4j/node.csv 中的数据

    我们将数据移动到 neo4j 用户拥有权限的文件夹中,并在查询中调整了路径。

    为了将来参考,Neo4j 的日志可以提供额外的信息,在 Linux 中,位于 /var/log/neo4j

    【讨论】:

      【解决方案2】:

      Sheldonkreger,你的同事是对的。谢谢他。

      我用同样的方法解决了它,但实际上您不需要按照他的建议将文件放在 neo4j 用户具有权限的位置,例如 /var/log/neo4j 或 /var/lib/neo4j .

      相反,只需转到上面提到的 neo4j 目录并查看那里的文件权限,并为您的 csv 文件或您尝试导入的任何文件提供相同的权限。

      例如,对于我的系统,neo4j 文件夹中的文件权限是这样的:

      ls -la
      total 208
      drwxr-xr-x  4 neo4j adm    4096 Feb  4 10:35 .
      drwxr-xr-x 87 root  root   4096 Feb 11 22:21 ..
      drwxr-xr-x  3 neo4j adm    4096 Feb  4 10:35 bin
      -rw-r--r--  1 neo4j adm   61164 Jan 29 22:32 CHANGES.txt
      lrwxrwxrwx  1 neo4j adm      10 Sep 30 12:07 conf -> /etc/neo4j
      drwxr-xr-x  4 neo4j adm    4096 Mar 13 13:25 data
      lrwxrwxrwx  1 neo4j adm      20 Sep 30 12:07 lib -> /usr/share/neo4j/lib
      -rw-r--r--  1 neo4j adm  125517 Jan 29 22:32 LICENSES.txt
      lrwxrwxrwx  1 neo4j adm      24 Sep 30 12:07 plugins -> /usr/share/neo4j/plugins
      -rw-r--r--  1 neo4j adm    1568 Jan 29 22:32 README.txt
      lrwxrwxrwx  1 neo4j adm      23 Sep 30 12:07 system -> /usr/share/neo4j/system
      -rw-r--r--  1 neo4j adm    4018 Jan 29 22:30 UPGRADE.txt
      

      所以我对我的文件做了同样的事情,neo4j 成功地运行了导入命令。

      我这样做了:

      sudo chown neo4j:adm <csv file location>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多