gpt4 book ai didi

csv - Neo4j 批量导入中作为 int 的 ID 在关系导入中产生错误

转载 作者:行者123 更新时间:2023-12-04 17:32:48 25 4
gpt4 key购买 nike

我使用 Neo4j 的管理导入工具以 csv 格式导入批量数据。我在 header [journal:ID:int(Journal-ID)] 中使用 Integer 作为 ID 数据类型,并且导入节点的部分工作正常。当导入工具涉及到关系时,我得到了引用节点丢失的错误。看起来像 relations-import 它正在搜索 String 格式的 ID。我也已经尝试更改关系文件中 ID 的类型,但出现其他错误。我发现无法在关系文件中将 ID 指定为 int。

这是一个最小的例子。假设我们有两种带有 header 的节点类型:

journal:ID:int(Journal-ID)

documentID:ID(Document-ID),title

和示例文件 j​​ournal.csv:

"123"
"987"

和 document.csv:

"PMID:1", "Title"
"PMID:2", "Other Title"

我们还有一个与标题的关系“hasDocument”:

:START_ID(Journal-ID),:END_ID(Document-ID)

和示例文件 relation.csv:

"123", "PMID:1"

运行导入时出现错误:

Error in input data
Caused by:123 (Journal-ID)-[hasDocument]->PMID:1 (Document-ID) referring to missing node 123

我试图将关系 header 指定为

:START_ID:int(Journal-ID),:END_ID(Document-ID)

但这也会产生错误。

开始导入的命令是:

neo4j-admin import --nodes:Document="document-header.csv,documentNodes.csv"--nodes:Journal="journal-header.csv,journalNodes.csv"--relationships:hasDocument= “hasDocument-header.csv,relationsHasDocument.csv”

有没有办法将关系文件中的 ID 指定为 Integer 或者是否有其他解决方案?

最佳答案

似乎不支持。文档没有提到它,代码也没有 such test case .

您可以使用 String id 导入数据并在启动数据库后将其转换。

MATCH (j:Journal)
SET j.id = toInteger(j.id)

如果你的数据集很大,你可以使用 apoc with iterate:

call apoc.periodic.iterate("
MATCH (j:Journal) RETURN j
","
SET j.id = toInteger(j.id)
",{batchSize:10000})

关于csv - Neo4j 批量导入中作为 int 的 ID 在关系导入中产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57975081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com