Ошибка клиента Neo4Js apoc.load.csv Неудачная процедура.вызвано ArrayIndexOutofBoundException 1 - PullRequest
0 голосов
/ 12 июня 2019

Я новичок в NEO4J.Я использую neo4j версии 3.5.6 Community Edition и плагины 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: вызвано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 Ответ

2 голосов
/ 13 июня 2019
  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"}│
      └─────────────────┘
      
...