我有两个csv文件: (clean_data_2.csv:示例内容如下)
(stationdata.csv:样本内容如下)
从我的密码查询中,我希望每个工作站都表示为节点,而关系则表示为计数。
我做了这样的事情:
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的新手-图形数据库,谢谢!
答案 0 :(得分:2)
第二个查询的MATCH
子句未指定src
和dst
的站点节点名称,因此将匹配所有可能的站点节点对。这将导致使用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
属性,因为似乎不需要将其作为数组。