在neo4j中使用批量导入器导入csv文件时遇到问题

时间:2019-07-31 22:43:24

标签: neo4j

我正在尝试使用neo4j批量导入器从csv文件中加载节点及其关系,

neo4j-admin import \
--id-type=string \
--nodes:AGENT="nodes_AGENT_C_20190610.csv" \
--nodes:CUSTOMER="nodes_CUSTOMER_C_20190610.csv" \
--relationships:CASHOUT="relcashoutTest-header.csv,relcashoutTest.csv"

和我的csv文件(用于关系文件)

:TYPE,:START_ID(CUSTOMER),:END_ID(AGENT),TXNID:string,TIMESTAMP:datetime,AMOUNT:int,CHANNEL

此处TYPE表示名为RELATIONSHIP的列 和我的相关csv文件看起来像这样

CASHOUT,abc,xyz,6C19MX7DXL,2019-03-01T11:02:55,40,charge
CASHOUT,pqr,jkl,6C19MX7E2V,2019-03-01T11:02:57,10,charge

运行import.sh脚本后出现以下错误 意外错误:找不到组“ CUSTOMER”。可用的组为:[]

我仔细阅读了文档,但没有弄清楚我的错误。任何帮助将不胜感激neo4j版本是3.5.8

1 个答案:

答案 0 :(得分:1)

:START_ID:END_ID字段可以采用可选的ID space,就像:START_ID(CUSTOMER)一样。

但是 ID空间与节点 label 是同一件事。为了使:START_ID(CUSTOMER)工作,您的节点CSV文件之一(可能是CUSTOMER标签的文件)必须在其标头中指定:ID(CUSTOMER)而不是:ID 。这样做会将CUSTOMER ID空间与该文件创建的节点相关联,并且您应该不再看到该特定错误。

您可能还需要为AGENT ID空间做类似的事情。

注意:如果您的所有节点在:ID字段中(跨CSV文件)都具有唯一值,则根本不需要使用ID空间。在这种情况下,您的关系文件标头可以简单地使用:START_ID:END_ID而没有任何限制。