【发布时间】:2019-09-21 09:27:01
【问题描述】:
我计划将火车时刻表和车站从 CSV 加载到 Neo4j 中。
源数据
TrainNo TrainName SEQ StationCode Arrival Departure Distance
1 TN_1 1 S1 8 9 0
1 TN_1 2 S2 10 11 10
1 TN_1 3 S3 12 1 15
1 TN_1 4 S4 3 4 15
2 TN_2 1 S1
2 TN_2 2 S2
2 TN_2 3 S5
2 TN_2 4 S6
2 TN_2 5 S7
2 TN_2 6 S8
我需要像这样建立节点和关系
S1--(TrainNo,TrainName,SEQ,Arrival,Depature,Distance)--S2--(TrainNo,TrainName,SEQ,Arrival,Depature,Distance)--S3--(TrainNo,TrainName,SEQ,Arrival,Depature,Distance)-S4
基本上,TrainNo、TrainName、Seq、Arrival、Depature 和 Distance 都会在关系上,相同的关系会形成车站之间的路线。
Neo4j - 3.5
【问题讨论】:
-
到目前为止你尝试了什么?
-
我已经使用 MERGE 加载了所有的 StationCode,所以没有重复的 stationcode。同样在我过去的经验中,我已经加载了 From 和 To 列等数据。我还没有加载任何序列
-
这是一个非常奇怪的 CSV。通常你会有类似关系 CSV 的东西,其中每一行代表你想要创建的关系(假设所有节点都已经创建),所以 CSV 应该有类似
TrainNo, TrainName, SEQ, StationCodeFrom, StationCodeTo, Arrival, Departure, Distance的东西。这样所有行都是相互独立的。在您当前的结构中,行依赖于其他行,例如,仅查看第 1 行无法判断 To 站是什么,它需要来自其他行的信息。如果可以,请创建一个更好的 CSV 文件。