Neo4j错误(Neo.客户端错误.程序.程序调用失败)

bogh5gae  于 2023-03-12  发布在  其他
关注(0)|答案(2)|浏览(254)

我是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
pw136qt2

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

bf1o4zei

bf1o4zei2#

出现IllegalStateException是因为“xxxxxxx”作为关系文件Trade_History.csv:START_ID:START_ID列中的值出现。理想情况下,应在导入之前清除数据。例如:

  • 如果假定节点ID值为数字字符串,请验证:START_ID:START_ID值是否均为数字字符串。对于每个违规,请确定如何修复数据或删除该行。
  • 删除多余的空格(如“047316281”开头的空格)。这可能是CSV文件出错的另一个原因。

另一个观察结果是,您使用的是在关系文件中定义ID空间的语法,而ID空间只能在节点文件中定义。也就是说,关系文件的ACCOUT:START_IDACCOUT:END_ID中不应该有“ACCOUT(它不会导致错误,但是应该修正错误的语法以避免混淆和将来可能出现的问题)。(如果您只有一个节点文件,就不会这样做),那么您应该阅读并遵循文档。

相关问题