密码查询-从CSV文件创建图形

时间:2018-11-29 01:48:59

标签: neo4j cypher

我有两个csv文件: (clean_data_2.csv:示例内容如下)

enter image description here

(stationdata.csv:样本内容如下)

enter image description here

从我的密码查询中,我希望每个工作站都表示为节点,而关系则表示为计数。

我做了这样的事情:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///stationdata.csv" AS line
CREATE (s:station{id:line.station_id,station_name:line.name});

加载所有站点数据:它将创建所有节点-源列和目标列

LOAD CSV WITH HEADERS FROM "file:///clean_data_2.csv" AS line
MATCH (src:station),(dst:station)
CREATE (src)-[:TO{ count: [line.count]}]->(dst);

上面的部分运行了,但是没有给我算节点之间的关系。

我是Neo4j的新手-图形数据库,谢谢!

1 个答案:

答案 0 :(得分:2)

第二个查询的MATCH子句未指定srcdst的站点节点名称,因此将匹配所有可能的站点节点对。这将导致使用TO属性创建许多额外的count关系。

尝试使用此查询代替第二个查询:

LOAD CSV WITH HEADERS FROM "file:///clean_data_2.csv" AS line
MATCH (src:station {name: line.src}), (dst:station {name: line.dst})
CREATE (src)-[:TO {count: TOINTEGER(line.count)}]->(dst);

此查询在MATCH子句中指定站名,您的查询没有这样做。

此查询还将字符串中的line.count值(由LOAD CSV产生的所有值都是)转换为整数,并将其作为标量值分配给count属性,因为似乎不需要将其作为数组。