【问题标题】:Neo4Js client error apoc.load.csv failed procedure. caused by ArrayIndexOutofBoundException 1Neo4Js 客户端错误 apoc.load.csv 过程失败。由 ArrayIndexOutofBoundException 1 引起
【发布时间】:2019-06-12 13:14:04
【问题描述】:

我是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.*

【问题讨论】:

  • 你能提供那个异常的调用栈吗?

标签: neo4j neo4j-apoc


【解决方案1】:
  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"}│
      └─────────────────┘
      

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 2017-05-06
    • 2019-08-18
    相关资源
    最近更新 更多