当前位置: 首页 > 知识库问答 >
问题:

neo4j使用关系导入CSV

石喜
2023-03-14
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///seshatdata/sellable_unit_features.csv" AS line 
WITH line, SPLIT(line.ship_dt, '-') AS date

CREATE (sellableunit:SellableUnit {sellable_unit_id: line.sellable_unit_id, sellable_unit_nm: line.sellable_unit_nm, sellable_unit_version_id: line.sellable_unit_version_id})
MERGE (feature:Feature {Feature_id:line.feature_id, feature_nm: line.feature_nm})

CREATE (SellableUnit)-[r:CONTAINS]->(Feature)

SET r.start_year = TOINT(date[0]);

共有1个答案

蒋星驰
2023-03-14

您的密码查询有一个错别字错误。Cypher对变量声明区分大小写。

变量名区分大小写,可以包含下划线和字母数字字符(a-z,0-9),但必须始终以字母开头。如果需要其他字符,可以使用反引号(`)对变量进行引号

试试看:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///seshatdata/sellable_unit_features.csv" AS line 
WITH line, SPLIT(line.ship_dt, '-') AS date

CREATE (sellableunit:SellableUnit {sellable_unit_id: line.sellable_unit_id, sellable_unit_nm: line.sellable_unit_nm, sellable_unit_version_id: line.sellable_unit_version_id})
MERGE (feature:Feature {Feature_id:line.feature_id, feature_nm: line.feature_nm})

CREATE (sellableUnit)-[r:CONTAINS]->(feature)

SET r.start_year = TOINT(date[0]);
 类似资料:
  • 我是一个新的4J新手,我有一个简单的CSV与来源和dest IPS。我想在具有相同标签的节点之间创建一个关系。 类似于…source_ip>>ALERTS>>dest_ip,或者相反。 ....

  • 希望有人能帮助我。

  • 在cypher中是否可以使用导入功能根据csv的值在节点之间创建不同的关系。 可能有简单的方法做这件事。但我在网上没有得到任何参考资料。谢了。

  • 我希望它创建每个节点(而不是在已经存在具有相同ID的节点时创建新节点),并创建每个关系(在CSV中指定具有多个关系的节点中有多个关系from/to节点)。 实际发生的情况:它似乎创建了所有唯一的节点。它还创建了节点之间的关系,但它只为每个节点设置一个关系,而不考虑与多个其他节点进行通信的一些节点。 我很困惑,因为我的理解是,如果在数据库中还没有出现关系,它将创建关系,所以我认为它将创建CSV中指定