我是Neo4j的新手。我尝试使用apoc.import.csv同时创建“帐户”节点和“交易_历史”关系。
CALL apoc.import.csv(
[{fileName: "file:///Account.csv", labels: ['Account']}],
[{fileName: "file:///Trade_History.csv", type: 'TRANSACTION'}],
{}
)
但是,我收到了以下错误消息。
Neo.客户端错误.过程.过程调用失败无法调用过程apoc.import.csv
:原因:java.lang.非法状态异常:未找到ID空间为__CSV_DEFAULT_IDSPACE且ID为xxxxxxx的节点
我认为错误是找不到ID“xxxxxxx”,但是缺少哪个ID,Account或Trade_History?是否有一个ID存在于Trade_History中,而在Account中不存在?如果是,如果Trade_History ID对在Account中不存在,是否可以实现任何跳过(不创建关系)的方法?或者,如果您知道另一个候选查询,将不胜感激。
这可能是最基本的,但你能告诉我一些建议吗?先谢了。
附注:Account.csv和Trade_History.csv的前三行内容如下:
Account.csv
:ID,name
000000000080,James
000000000056,Kevin
000000000039,Thomas
交易_历史记录.csv
LABEL:STRING,ACCOUT:START_ID,ACCOUT:END_ID
XYZ36417771,AAA_20670095845, 047316281
XYZ56315967,BBB_0000970982, 456317783746
XYZ61489917,CCC_00209200036399,093891638
2条答案
按热度按时间pw136qt21#
对于Neo4j导入工具,如果您可以设置
--skip-bad-relationships
标志,那么我认为这些行将被忽略。从apoc.import.csv
docs来看,不清楚apoc.import.csv
是否支持skip-bad-relationships
。您可以尝试在配置对象中传递{skipBadRelationships: True}
,否则可以使用neo4j-admin
CLI设置--skip-bad-relationships
标志。有关详细信息,请参见文档的此部分:https://neo4j.com/docs/operations-manual/current/tutorial/neo4j-admin-import/#_skip_relationships_referring_to_missing_nodes
bf1o4zei2#
出现
IllegalStateException
是因为“xxxxxxx”作为关系文件Trade_History.csv
的:START_ID
或:START_ID
列中的值出现。理想情况下,应在导入之前清除数据。例如::START_ID
或:START_ID
值是否均为数字字符串。对于每个违规,请确定如何修复数据或删除该行。另一个观察结果是,您使用的是在关系文件中定义ID空间的语法,而ID空间只能在节点文件中定义。也就是说,关系文件的
ACCOUT:START_ID
和ACCOUT:END_ID
中不应该有“ACCOUT(它不会导致错误,但是应该修正错误的语法以避免混淆和将来可能出现的问题)。(如果您只有一个节点文件,就不会这样做),那么您应该阅读并遵循文档。