Я работал с Neo4j Import Tool недавно после небольшого перерыва и столкнулся с интересным сообщением об ошибке, которое я изначально не понимал.
У меня было несколько CSV-файлов, содержащих узлы, которые я хотел импортировать в Neo4j. Их содержимое выглядит так:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
$ cat people_header.csv name:ID(Person) $ cat people.csv "Mark" "Michael" "Ryan" "Will" "Jennifer" "Karin" $ cat companies_header.csv name:ID(Company) $ cat companies.csv "Neo4j" |
Мне проще использовать отдельные файлы заголовков, потому что я часто делаю опечатки с именами своих столбцов, и проще обновить однострочный файл, чем открыть многомиллионный файл и изменить первую строку.
Я выполнил следующую команду, чтобы создать новую базу данных Neo4j из этих файлов:
1
2
3
4
5
|
$ ./bin/neo4j-admin import \ --database=blog.db \ --mode=csv \ --nodes:Person people_header.csv,people.csv \ --nodes:Company companies_heade.csv,companies.csv |
что привело к этому сообщению об ошибке:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
Neo4j version: 3.3 . 3 Importing the contents of these files into /Users/markneedham/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases/database-b59e33d5- 2060 -4a5d-bdb8-0b9f6dc919fa/installation- 3.3 . 3 /data/databases/blog.db: Nodes: :Person /Users/markneedham/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases/database-b59e33d5- 2060 -4a5d-bdb8-0b9f6dc919fa/installation- 3.3 . 3 /people_header.csv /Users/markneedham/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases/database-b59e33d5- 2060 -4a5d-bdb8-0b9f6dc919fa/installation- 3.3 . 3 /people.csv :Company /Users/markneedham/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases/database-b59e33d5- 2060 -4a5d-bdb8-0b9f6dc919fa/installation- 3.3 . 3 /companies.csv ... Import error: Mixing specified and unspecified group belongings in a single import isn't supported Caused by:Mixing specified and unspecified group belongings in a single import isn't supported java.lang.IllegalStateException: Mixing specified and unspecified group belongings in a single import isn't supported at org.neo4j.unsafe.impl.batchimport.input.Groups.getOrCreate(Groups.java: 52 ) at org.neo4j.unsafe.impl.batchimport.input.csv.InputNodeDeserialization.initialize(InputNodeDeserialization.java: 60 ) at org.neo4j.unsafe.impl.batchimport.input.csv.InputEntityDeserializer.initialize(InputEntityDeserializer.java: 68 ) at org.neo4j.unsafe.impl.batchimport.input.csv.ParallelInputEntityDeserializer.lambda$ new $ 0 (ParallelInputEntityDeserializer.java: 104 ) at org.neo4j.unsafe.impl.batchimport.staging.TicketedProcessing.lambda$submit$ 1 (TicketedProcessing.java: 103 ) at org.neo4j.unsafe.impl.batchimport.executor.DynamicTaskExecutor$Processor.run(DynamicTaskExecutor.java: 237 ) |
Вывод на самом деле полезно показывает, из каких файлов он импортируется, и в разделе «Компания» мы видим, что заголовочный файл отсутствует.
В результате опечатки, которую я сделал при попытке ввода companies_header.csv , инструмент теперь обрабатывает первую строку companies.csv как заголовок, и поскольку мы не указали группу (например, Company, Person) в этой строке, мы получаем эта ошибка.
Давайте исправим опечатку и попробуем еще раз:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
$ ./bin/neo4j-admin import \ --database=blog.db \ --mode=csv \ --nodes:Person people_header.csv,people.csv \ --nodes:Company companies_header.csv,companies.csv Neo4j version: 3.3 . 3 Importing the contents of these files into /Users/markneedham/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases/database-b59e33d5- 2060 -4a5d-bdb8-0b9f6dc919fa/installation- 3.3 . 3 /data/databases/blog.db: Nodes: :Person /Users/markneedham/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases/database-b59e33d5- 2060 -4a5d-bdb8-0b9f6dc919fa/installation- 3.3 . 3 /people_header.csv /Users/markneedham/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases/database-b59e33d5- 2060 -4a5d-bdb8-0b9f6dc919fa/installation- 3.3 . 3 /people.csv :Company /Users/markneedham/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases/database-b59e33d5- 2060 -4a5d-bdb8-0b9f6dc919fa/installation- 3.3 . 3 /companies_header.csv /Users/markneedham/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases/database-b59e33d5- 2060 -4a5d-bdb8-0b9f6dc919fa/installation- 3.3 . 3 /companies.csv ... IMPORT DONE in 1s 5ms. Imported: 7 nodes 0 relationships 7 properties Peak memory usage: 480.00 MB |
Успех!
Опубликовано на Java Code Geeks с разрешения Марка Нидхэма, партнера нашей программы JCG . См. Оригинальную статью здесь: Neo4j Import: java.lang.IllegalStateException: смешивание указанных и неопределенных групповых принадлежностей в одном импорте не поддерживается
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |