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

Neo4Js client error apoc.load.csv failed procedure. caused by ArrayIndexOutofBoundException 1

我是 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: Failed to invoke procedure apoc.load.csv: Caused by: 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. 确保您的 neo4j.conf 文件中有此设置:

    apoc.import.file.enabled=true
    
  2. 确保您的 CSV 文件是 well-formed。

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

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

      a,b
      1,
      

      查询结果为:

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

      a,b
      1,2
      

      则查询结果为:

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