【问题标题】:Gremlin CSV parse creating extra verticesGremlin CSV 解析创建额外的顶点
【发布时间】:2017-10-30 21:00:25
【问题描述】:

我的代码应该读取 4 列,将它们拆分为前 2 列的顶点和最后两列的边缘属性。CSV 文件在 37 行数据中具有 33 个唯一顶点。我不明白为什么我得到 74 个顶点和 37 个边。有趣的是,如果我省略 addE 语句,我只会得到 37 个顶点。

显然,由于我一直在尝试解决当前的问题,因此未包括属性部分。

1\t2\tstep\tcmp
2\t3\tconductor\tna
3\t4\tswitch\tZ300

\t 用于制表符 等等

我的代码是:

graph = TinkerGraph.open()
graph.createIndex('myId', Vertex.class)
g = graph.traversal()
getOrCreate = { myid ->
   p = g.V('myId', myid)
   if (!p.hasNext())
     {g.addV('connector').property('myId',myid) }  
   else
     {p.next()}
}
new File('Continuity.txt').eachLine {
   if (!it.startsWith("#")){
       def row  = it .split('\t')
       def fromVertex = getOrCreate(row[0])
       def toVertex = getOrCreate(row[1])
       g.addE("connection").from(fromVertex).to(toVertex).iterate()  
   }
}

【问题讨论】:

    标签: gremlin


    【解决方案1】:

    我看到的代码中至少有一个问题。在这一行:

    p = g.V('myId', myid)
    

    您告诉 gremlin 查找 id 为“myId”的顶点以及变量 myid 的值。你反而想要:

    p = g.V().has('myId', myid)
    

    您使用的语法来自 TinkerPop 2.x。我以这种方式测试了您的代码并进行了一些其他更改,现在它似乎可以正常工作:

    gremlin> graph = TinkerGraph.open()
    ==>tinkergraph[vertices:0 edges:0]
    gremlin> graph.createIndex('myId', Vertex.class)
    gremlin> g = graph.traversal()
    ==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
    gremlin> getOrCreate = { myid ->
    ......1>    if (!g.V().has('myId', myid).hasNext())
    ......2>      g.addV('connector').property('myId',myid)
    ......3>    else
    ......4>      g.V().has('myId', myid)
    ......5> }
    ==>groovysh_evaluate$_run_closure1@29d37757
    gremlin> g.addE('connection').from(getOrCreate(1)).to(getOrCreate(2)).iterate()
    gremlin> g.addE('connection').from(getOrCreate(1)).to(getOrCreate(2)).iterate()
    gremlin> g.V()
    ==>v[0]
    ==>v[2]
    gremlin> g.E()
    ==>e[4][2-connection->0]
    ==>e[5][2-connection->0]
    

    【讨论】:

      猜你喜欢
      • 2015-02-27
      • 2017-02-06
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多