Neo4Js客户端错误apoc.load.csv过程失败。由ArrayIndexOutofBoundException 1

时间:2019-06-12 13:14:04

标签: neo4j neo4j-apoc

我是NEO4J的新手。我使用的是neo4j 3.5.6社区版和apoc插件3.5.0.4版。默认导入文件夹中有一个CSV文件

NR_Nodes_Agent_I_20190331_tmp.csv。为了测试目的,我编写了一个密码查询

 CALL apoc.load.csv('NR_Nodes_Agent_I_20190331_tmp.csv') yield map as row return row;

但是我遇到了以下错误

  

Neo.ClientError.Procedure.ProcedureCallFailed:无法调用过程apoc.load.csv:由以下原因引起:java.lang.ArrayIndexOutOfBoundsException:1

我对此进行了一些研究,但尚未成功解决 我对neo4j.conf文件中的语句未加注释

dbms.directories.import=import 
dbms.security.allow_csv_import_from_file_urls=true
dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*,apoc.*

1 个答案:

答案 0 :(得分:2)

  1. 确保在neo4j.conf文件中具有此设置:

    apoc.import.file.enabled=true
    
  2. 确保您的CSV文件格式正确。

    • 例如,此CSV文件将导致相同的ArrayIndexOutOfBoundsException: 1错误消息(请注意,单个数据行缺少第二个值,因为它的逗号比标头少一个):

      a,b
      1
      
    • 另一方面,即使数据行在逗号后没有值,此CSV文件也可以使用:

      a,b
      1,
      

      查询结果为:

      ╒════════════════╕
      │"row"           │
      ╞════════════════╡
      │{"a":"1","b":""}│
      └────────────────┘
      
    • 如果数据行具有第二个值,则像这样:

      a,b
      1,2
      

      那么查询结果将是:

      ╒═════════════════╕
      │"row"            │
      ╞═════════════════╡
      │{"a":"1","b":"2"}│
      └─────────────────┘