NullPointerException при загрузке CSV с использованием процедуры apoc.periodic.iterate neo4j - PullRequest
0 голосов
/ 28 мая 2018

Я загружаю CSV-файл, используя apoc.periodic.iterate и apoc.load.csv, но я всегда отказываю и говорю, что есть исключение NullPointerException:

neo4j> CALL apoc.periodic.iterate('
       CALL apoc.load.csv("http://128.194.9.150:9999/On_Time_On_Time_Performance_2018_1.csv", {}) yield map as row return row
       ','
       MATCH (sc:City {name: row.OriginCityName}), (tc:City {name: row.DestCityName})
       MERGE (sc)-[f:Flight {flightDate: row.FlightDate, flightNum: toInt(row.FlightNum)}]->(tc)
       ', {batchSize:200, iterateList:true, parallel:true});
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| batches | total  | timeTaken | committedOperations | failedOperations | failedBatches | retries | errorMessages | batch                                                                                          | operations                                                   | wasTerminated |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 2851    | 570131 | 888       | 313800              | 256400           | 1282          | 0       |               | {total: 2851, committed: 1569, failed: 1282, errors: {`java.lang.NullPointerException`: 1282}} | {total: 570131, committed: 313800, failed: 256400, errors: } | FALSE         |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

НО, в то время как я использую команду neo4j load csvчтобы загрузить этот файл, они верны:

neo4j> LOAD CSV WITH HEADERS FROM "http://128.194.9.150:9999/On_Time_On_Time_Performance_2018_1.csv" as row
       MATCH (sc:City {name: row.OriginCityName}), (tc:City {name: row.DestCityName}) 
       MERGE (sc)-[f:Flight {flightDate: row.FlightDate, flightNum: toInt(row.FlightNum)}]->(tc)
       ;
0 rows available after 3395077 ms, consumed after another 0 ms
Created 255988 relationships, Set 511976 properties

файл csv поступает с веб-сайта: https://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236&DB_Short_Name=On-Time

как мне загрузить файл csv, чтобы избежать исключения NullPointerException?

1 Ответ

0 голосов
/ 29 мая 2018

Что ж, вы, очевидно, изменили заголовки по умолчанию для данных transstat, но я предполагаю, что вы их проверили.Единственное, что я сразу вижу как проблему, это то, что у вас есть параллель: true в вашем apoc.periodic.iterate.Учитывая данные (тесно связанные со многими одинаковыми начальными / конечными точками), которые обязательно вызовут проблемы.

Можете ли вы попробовать с parallel: false ?Это должно дать вам те же результаты, что и при обычной загрузке CSV.

Надеюсь, это поможет.

С уважением, Том

Обновление

CREATE CONSTRAINT ON (c:City) ASSERT c.name IS UNIQUE;

LOAD CSV WITH HEADERS FROM "file:///488042997_T_ONTIME.csv" AS row
WITH [row.ORIGIN_CITY_NAME, row.DEST_CITY_NAME] as names
UNWIND names as cityName
WITH DISTINCT cityName as theName
CREATE (c:City {name: theName});

# Added 328 labels, created 328 nodes, set 328 properties, completed after 3308 ms.

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///488042997_T_ONTIME.csv" AS row
WITH DISTINCT row.ORIGIN_CITY_NAME as ocn, row.DEST_CITY_NAME as dcn, row.FL_DATE as fdate, toInteger(row.FL_NUM) as fnum
MATCH (sc:City {name: ocn}), (tc:City {name: dcn})
CREATE (sc)-[f:FLIGHT {flightDate: fdate, flightNum: fnum}]->(tc);

# Set 1139338 properties, created 569669 relationships, completed after 38773 ms.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...