【问题标题】:I get a mysterious "Neo.ClientError.Statement.InvalidSyntax" error when loading a CSV in Neo4j在 Neo4j 中加载 CSV 时出现神秘的“Neo.ClientError.Statement.InvalidSyntax”错误
【发布时间】:2024-01-16 16:32:01
【问题描述】:

对于 Excel 课程,我试图在 Neo4j 中加载 CSV(第一次使用此应用程序),但在复制所述课程中显示的示例的第一步时被阻止:加载。

示例中使用的命令是这样的;

  1. 从“file:/path/to/file/file.csv”加载带有标题的 CSV
  2. 作为行
  3. 创建(m:movie {name:row.movi​​e})

但它给出了语法错误。我发现我可以通过使用 double \ 并添加“file:”来纠正它;

  1. 从“file://C:\\path\\to\\file\\file.csv”加载带有标题的 CSV
  2. 作为行
  3. 创建(m:movie {name:row.movi​​e})

Neo4j 接受此语法,处理片刻,然后返回 YET ANOTHER 错误;

Neo.TransientError.Statement.ExternalResourceFailure

我在在线 Neo4j 控制台中尝试了相同的命令(原始命令和我自己的命令),但没有成功。我可以毫无问题地使用该路径访问文件;它真的在那里。 CSV 文件仅包含 5 个常规字母字符串,仅此而已。没有花哨的格式或字符。

发生了什么事?

【问题讨论】:

  • 好吧,我发现如果将文件放在保管箱中它可以工作。然而我认为 Neo4j 能够上传本地文件?有谁知道怎么做?
  • 您的文件 url 不是 goog,请参阅这个问题:*.com/questions/24438083/neo4j-csv-cypher-import 您的文件可以是本地的或远程的,因此它可以在 Dropbox 上运行,如果有人可以看到该文件。

标签: csv neo4j load


【解决方案1】:

没那么神秘,Neo4j 的 IMPORT CSV 函数会在该数据库的服务器配置中的导入目录中查找指定的 CSV 文件,如其服务器配置文件顶部所指定的那样。 (IE:你的 neo4j.conf 文件中的dbms.directories.import=import。)

您应该在...中创建 import 目录

“C:\Users\[用户名]\Documents\Neo4j\default.graphdb\”

如果您将 CSV 文件放在那里,您可以使用以下 IMPORT CSV 函数指定任何子目录或仅指定要导入的“file.csv”。

LOAD CSV WITH HEADERS FROM "file:///file.csv" AS row RETURN row LIMIT 5

【讨论】:

    【解决方案2】:

    尝试使用:

    "file:///C:/path/to/file/file.csv"
    

    由于您的文件位于本地计算机上,因此 file 方案之后的第三个 / 前面没有主机名或地址 - 但它仍然需要存在。此外,文件 URI 路径分隔符应该是正斜杠(即使在 Windows 机器上)。

    如果您需要更多信息,请参阅File URI scheme *页面。

    【讨论】:

      最近更新 更多