Neo4j 调用过程“apoc.load.csv”失败:原因:java.io.IOException:无法打开文件test.csv进行读取

Neo4j 调用过程“apoc.load.csv”失败:原因:java.io.IOException:无法打开文件test.csv进行读取,neo4j,neo4j-apoc,Neo4j,Neo4j Apoc,我正在使用Neo4j 3.4.7,这是我尝试运行的简单查询: CALL apoc.load.csv('test.csv') yield lineNo, map , list RETURN *; 在获得错误后,我在conf文件中设置了以下apoc相关规则: apoc.import.file.enabled=true apoc.import.file.use_neo4j_config=true dbms.security.allow_csv_import_from_file_urls=t

我正在使用Neo4j 3.4.7,这是我尝试运行的简单查询:

 CALL apoc.load.csv('test.csv') yield lineNo, map , list
 RETURN *;
在获得错误后,我在conf文件中设置了以下apoc相关规则:

 apoc.import.file.enabled=true
 apoc.import.file.use_neo4j_config=true
 dbms.security.allow_csv_import_from_file_urls=true

但是我仍然得到上面的错误,有什么帮助或提示吗?

这个错误是由三种情况之一引起的

  • 给定的文件不存在
  • 给定的文件不是文件(如目录)
  • 程序没有读取文件的权限(操作系统限制)
我猜第一个可能就是问题所在。我建议您使用绝对文件路径,这样执行上下文就不重要了。(它可能是在查看neo4j启动文件所在的目录,或者apoc jar位置,或者天知道操作系统行为涉及到什么地方。)如果使用绝对路径,那么apoc视图中的“当前目录”是什么并不重要。(以防万一,我还要提到,您正在读取的文件必须与Neo4j位于同一台计算机上)


如果不是这样,则可能是另一个程序对该文件有写锁定(关闭打开该文件的任何程序以释放其可能已设置的任何锁定),或者是对该文件设置了读取限制(请与系统管理员联系以解决文件权限问题。我非常怀疑用户读取权限是问题所在,但这是可能的)

我只是在Neo4j 3.4.7桌面环境中使用相同的apoc.load.csv过程。我收到了完全相同的错误。我使用的配置规则与@shafig发布的相同。我在配置中更改了文件源以启用绝对文件路径。

apoc.import.file.use_neo4j_config=false

在使用完整路径重新运行该过程后,它正确执行。使用导入目录似乎无法正常工作。

Brett

当文件位于导入文件夹中时,它必须找到它。我缩短了错误,即给出搜索地址的部分,这正是my csv文件的存放位置。@shafigh我列出的3个条件是唯一可以抛出您列出的错误的条件。在房间里。你试过使用绝对文件路径吗?幸运的是,我还不能使用它,你如何格式化你的绝对文件路径?