Spark neo4j 图中圈的发现算法

2 篇文章 0 订阅
1 篇文章 0 订阅

测试中,会更新到最后,预计一个月后会完工(2019-12-19) 

19 days passed, it will be completed soon! ☺(2020-01-06)

23 days passed, the programming work is finished! ☺(2020-01-10)

28 days passed, a bug has  been fixed and add more edges  ☺(2020-01-15)

29 days passed, fix a bug by using LinkedHashSet to maintain the insert order of elements of set  ☺(2020-01-16)

30 days passed, fix a bug due to use LinkedHashSet  ☺(2020-01-17)

package neo4j

import java.net.URI

import org.apache.spark.graphx.{Edge, EdgeRDD, Graph, Pregel, VertexRDD}
import org.apache.spark.sql.{DataFrame, Row}
import org.apache.spark.sql.functions.monotonically_increasing_id
import org.apache.spark.sql.types.{DoubleType, LongType, StringType, StructField, StructType}
import org.opencypher.okapi.api.graph.GraphName
import org.opencypher.okapi.api.io.conversion.{NodeMapping, RelationshipMapping}
import org.opencypher.spark.api.CAPSSession
import org.opencypher.spark.api.io.{CAPSNodeTable, CAPSRelationshipTable}
import org.opencypher.spark.api.io.neo4j.{Neo4jConfig, Neo4jPropertyGraphDataSource}
import org.opencypher.spark.impl.io.neo4j.external.Neo4j

import scala.util.Random

object TestVI  extends App {
  //1) Create CAPS session and retrieve Spark session
  implicit val session: CAPSSession = CAPSSession.local()
  val spark = session.sparkSession
  //11)  Connect to Neo4j
  val boltWriteURI: URI = new URI("bolt://localhost:7687")
  val neo4jWriteConfig: Neo4jConfig = new Neo4jConfig(boltWriteURI, "neo4j", Some("123abc"), true)
  val neo4jResult: Neo4jPropertyGraphDataSource = new Neo4jPropertyGraphDataSource(neo4jWriteConfig)(session)
  val neo4jConnection = Neo4j(neo4jWriteConfig, session.sparkSession)

  val neo4jResultName: GraphName = new GraphName("neo4jgraph")
  neo4jResult.delete(neo4jResultName)
  //node : no, name;  relation : source, target, amount
  val len = 9
  var node_seq = collection.mutable.ListBuffer[(Long, String)]()
  var relation_seq = collection.mutable.ListBuffer[(Long, Long, Double)]()
  for (i <- 0 until len) {
    node_seq.+=((i.toLong, s"name$i"))
    i match {
      case a if a == len - 1 => relation_seq.+=((0.toLong, a.toLong, Random.nextDouble() * len))
      case _ => relation_seq = relation_seq.+=((i + 1.toLong, i.toLong, Random.nextDouble() * len))
    }
    if (i % 10 == 0) {
      Thread.sleep(100)
      //println(node_seq.length + " " + relation_seq.length)
    }
  }
  //println(node_seq)
  //println(relation_seq)
  node_seq.+=((9.toLong, "name9"))
  node_seq.+=((10.toLong, "name10"))
  node_seq.+=((11.toLong, "name11"))
  node_seq.+=((12.toLong, "name12"))
  relation_seq.+=((0L, 0L, Random.nextDouble() * len))
  relation_seq.+=((3L, 3L, Random.nextDouble() * len))
  relation_seq.+=((0L, 3L, Random.nextDouble() * len))
  relation_seq.+=((0L, 9L, Random.nextDouble() * len))
  relation_seq.+=((7L, 10L, Random.nextDouble() * len))
  relation_seq.+=((10L, 7L, Random.nextDouble() * len))
  relation_seq.+=((7L, 10L, Random.nextDouble() * len))
  relation_seq.+=((10L, 7L, Random.nextDouble() * len))
  relation_seq.+=((10L, 11L, Random.nextDouble() * len))
  relation_seq.+=((11L, 12L, Random.nextDouble() * len))
  relation_seq.+=((12L, 10L, Random.nextDouble() * len))

  relation_seq.+=((0L, 0L, Random.nextDouble() * len))
  relation_seq.+=((3L, 3L, Random.nextDouble() * len))
  relation_seq.+=((3L, 0L, Random.nextDouble() * len))
  relation_seq.+=((9L, 0L, Random.nextDouble() * len))
  relation_seq.+=((10L, 7L, Random.nextDouble() * len))
  relation_seq.+=((7L, 10L, Random.nextDouble() * len))
  relation_seq.+=((10L, 7L, Random.nextDouble() * len))
  relation_seq.+=((7L, 10L, Random.nextDouble() * len))
  relation_seq.+=((11L, 10L, Random.nextDouble() * len))
  relation_seq.+=((12L, 11L, Random.nextDouble() * len))
  relation_seq.+=((10L, 12L, Random.nextDouble() * len))

  //3) cache the dataframe
  //println("#####" +node_seq.length + " " + relation_seq.length)
  val nodesDF: DataFrame = spark.createDataFrame(node_seq).toDF("no", "name").
    withColumn("id1", monotonically_increasing_id()).select("id1", "name", "no").cache()
  nodesDF.count()
  //nodesDF.show
  val relsDF: DataFrame = spark.createDataFrame(relation_seq).toDF("source", "target", "amount").
    withColumn("id2", monotonically_increasing_id()).select("id2", "source", "target", "amount").cache()
  relsDF.count()
  //relsDF.show

  import spark.implicits._

  //8) mapping the columns
  val node_mapping = NodeMapping.withSourceIdKey("id1").withImpliedLabel("Person").withPropertyKeys("no", "name")
  val rel_mapping = RelationshipMapping.withSourceIdKey("id2").withSourceStartNodeKey("source")
    .withSourceEndNodeKey("target").withRelType("KNOWS").withPropertyKeys("amount")

  //9)  create tables
  val node_table = CAPSNodeTable(node_mapping, nodesDF)
  val rel_table = CAPSRelationshipTable(rel_mapping, relsDF)

  //10) Create graph
  val graph = session.readFrom(node_table, rel_table)

  //12) Store graph in neo4j
  neo4jResult.store(neo4jResultName, graph)
  val node_result = neo4jConnection.cypher("MATCH (n:Person) RETURN n.no as no, n.name as name").loadNodeRdds
  val node_fields: Array[StructField] = Array(new StructField("no", LongType, true), StructField("name", StringType, true))
  val nodeSchema = new StructType().add(node_fields(0)).add(node_fields(1))
  //session.sparkSession.createDataFrame(node_result, nodeSchema).show(10)
  val rel_result = neo4jConnection.rels("MATCH (m:Person)-[r:KNOWS]->(n:Person) RETURN m.no as source, n.no as target, r.amount as amount").loadRelRdd
  val rel_fields: Array[StructField] = Array(new StructField("source", LongType, true), StructField("target", LongType, true),
    StructField("amount", DoubleType, true))
  val relSchema = new StructType().add(rel_fields(0)).add(rel_fields(1)).add(rel_fields(2))
  //session.sparkSession.createDataFrame(rel_result, relSchema).show(10)
  val edges: EdgeRDD[Double] = EdgeRDD.fromEdges(rel_result.map { case Row(a: Long, b: Long, c: Double) => Edge(a, b, c) })
  val vertices: VertexRDD[(Long, String)] = VertexRDD(node_result.map { case Row(a: Long, b: String) => (a, (a, b)) })
  val graph_spark = Graph[(Long, String), Double](vertices, edges)
  val final_graph_fit_tmp1 = graph_spark.removeSelfEdges().mapVertices((id, attr) =>
    (new collection.mutable.HashMap[Long, collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]]().+=
    ((id, new collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]().+=
    (collection.mutable.LinkedHashSet[Long](id))))
      , new collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]](), 0))

  val find_circle = Pregel(final_graph_fit_tmp1, new collection.mutable.HashMap
    [Long, collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]]())(
    (id, attr, msg) => {
      Thread.sleep(10)
      if (id == 4) {
        println("================================")
        println("                " + attr._3 + "                ")
        println("================================")
      }
      println("id: " + id + " msg: " + msg + " attr: " + attr)
      val ss: collection.mutable.HashMap[Long, collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]] =
        new collection.mutable.HashMap[Long, collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]]()
      for (ss_a <- attr._1) {
        val cpy = new collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]()
        for (e <- ss_a._2) {
          cpy.+=(e)
        }
        ss.+=(ss_a._1 -> cpy)
        if (msg.contains(ss_a._1)) {
          for (s_m <- msg(ss_a._1)) {
            for (s_a <- ss_a._2) {
              if (attr._3 == 3 && id == 11)
                println("order operate: " + s_a + " " + s_m)
              if (s_a.-(s_a.head) == s_m.-(s_m.last))
                ss(ss_a._1).+=(s_a.++(s_m))
              if (attr._3 > 1) {
                val set = new collection.mutable.HashSet[Int]()
                for (i <- ss(ss_a._1).indices) {
                  if (ss(ss_a._1)(i) == (s_a)) {
                    set.add(i)
                  }
                }
                val set2 = ss(ss_a._1).indices.toSet.diff(set)
                val listBuf = new collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]()
                for (i <- set2) {
                  listBuf.append(ss(ss_a._1)(i))
                }
                ss(ss_a._1).clear()
                ss(ss_a._1).append(listBuf:_*)
              }
            }
          }
        }
      }
      for (key <- msg.keys.toSet.diff(ss.keys.toSet)) {
        val cpy = new collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]()
        for (e <- msg(key)) {
          cpy.+=(e)
        }
        ss.+=((key, cpy))
      }
      val set_remove: collection.mutable.ListBuffer[(Long, collection.mutable.LinkedHashSet[Long])] =
        new collection.mutable.ListBuffer[(Long, collection.mutable.LinkedHashSet[Long])]()
      for (s <- ss) {
        for (e <- s._2) {
          if (attr._3 > 0) {
            if (e.isEmpty) {
              set_remove.+=((s._1, e))
            } else if (attr._3 == 1) {
              ss.remove(id)
            } else if (e.contains(id) || e.size != attr._3) {
              set_remove.+=((s._1, e))
              if (e.size == attr._3) {
                attr._2.+=(e)
              }
            }
          }
        }
      }
      for (s <- set_remove) {
        val set = new collection.mutable.HashSet[Int]()
        for (i <- ss(s._1).indices) {
          if (ss(s._1)(i) == s._2) {
            set.add(i)
          }
        }
        val set2 = ss(s._1).indices.toSet.diff(set)
        val listBuf = new collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]()
        for (i <- set2) {
          listBuf.append(ss(s._1)(i))
        }
        ss(s._1).clear()
        ss(s._1).append(listBuf:_*)
      }
      (ss.filter(s => s._2.nonEmpty), attr._2.filter(s => s.nonEmpty), attr._3 + 1)
    },
    trp => if (trp.srcAttr._1.keys.nonEmpty) {
      val ss = new collection.mutable.HashMap[Long, collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]]()
      for (s <- trp.srcAttr._1) {
        if (ss.contains(trp.srcId)) {
          ss(trp.srcId).++=(s._2)
        } else {
          val cpy = new collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]()
          for (e <- s._2 if e.size - trp.srcAttr._3 < 2 && e.size - trp.srcAttr._3 > -2 && e.size - trp.dstAttr._3 < 2 && e.size - trp.dstAttr._3 > -2) {
            cpy.+=(e)
          }
          if (cpy.nonEmpty)
            ss.+=(trp.srcId -> cpy)
        }
      }
      if (ss.nonEmpty)
        Iterator({
          (trp.dstId, ss)
        })
      else
        Iterator.empty
    } else Iterator.empty,
    (a, b) => {
      val ss = new collection.mutable.HashMap[Long, collection.mutable.ListBuffer[collection.mutable.LinkedHashSet[Long]]]()
      ss.++=(a)
      ss.++=(b)
      ss
    }).cache()
  println("================================")
  println("                vertices                ")
  println("================================")
  println(find_circle.vertices.mapValues(v => v._2.toSet).take(15).mkString("##;\r\n"))
  System.exit(0)
}

测试结果:

"C:\Program Files\Java\jdk1.8.0_231\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3\lib\idea_rt.jar=54242:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_231\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\rt.jar;D:\test\target\classes;D:\spark-2.2.0\activation-1.1.1.jar;D:\spark-2.2.0\antlr4-runtime-4.5.3.jar;D:\spark-2.2.0\aopalliance-repackaged-2.4.0-b34.jar;D:\spark-2.2.0\apacheds-i18n-2.0.0-M15.jar;D:\spark-2.2.0\apacheds-kerberos-codec-2.0.0-M15.jar;D:\spark-2.2.0\api-asn1-api-1.0.0-M20.jar;D:\spark-2.2.0\api-util-1.0.0-M20.jar;D:\spark-2.2.0\arpack_combined_all-0.1.jar;D:\spark-2.2.0\avro-1.7.7.jar;D:\spark-2.2.0\avro-ipc-1.7.7.jar;D:\spark-2.2.0\avro-mapred-1.7.7-hadoop2.jar;D:\spark-2.2.0\base64-2.3.8.jar;D:\spark-2.2.0\bcprov-jdk15on-1.51.jar;D:\spark-2.2.0\breeze-macros_2.11-0.13.1.jar;D:\spark-2.2.0\breeze_2.11-0.13.1.jar;D:\spark-2.2.0\chill-java-0.8.0.jar;D:\spark-2.2.0\chill_2.11-0.8.0.jar;D:\spark-2.2.0\commons-beanutils-1.7.0.jar;D:\spark-2.2.0\commons-beanutils-core-1.8.0.jar;D:\spark-2.2.0\commons-cli-1.2.jar;D:\spark-2.2.0\commons-codec-1.10.jar;D:\spark-2.2.0\commons-collections-3.2.2.jar;D:\spark-2.2.0\commons-compiler-3.0.0.jar;D:\spark-2.2.0\commons-compress-1.4.1.jar;D:\spark-2.2.0\commons-configuration-1.6.jar;D:\spark-2.2.0\commons-crypto-1.0.0.jar;D:\spark-2.2.0\commons-digester-1.8.jar;D:\spark-2.2.0\commons-httpclient-3.1.jar;D:\spark-2.2.0\commons-io-2.4.jar;D:\spark-2.2.0\commons-lang-2.6.jar;D:\spark-2.2.0\commons-lang3-3.5.jar;D:\spark-2.2.0\commons-math3-3.4.1.jar;D:\spark-2.2.0\commons-net-2.2.jar;D:\spark-2.2.0\compress-lzf-1.0.3.jar;D:\spark-2.2.0\core-1.1.2.jar;D:\spark-2.2.0\curator-client-2.6.0.jar;D:\spark-2.2.0\curator-framework-2.6.0.jar;D:\spark-2.2.0\curator-recipes-2.6.0.jar;D:\spark-2.2.0\gson-2.2.4.jar;D:\spark-2.2.0\guava-14.0.1.jar;D:\spark-2.2.0\hadoop-annotations-2.6.5.jar;D:\spark-2.2.0\hadoop-auth-2.6.5.jar;D:\spark-2.2.0\hadoop-common-2.6.5.jar;D:\spark-2.2.0\hadoop-hdfs-2.6.5.jar;D:\spark-2.2.0\hadoop-mapreduce-client-app-2.6.5.jar;D:\spark-2.2.0\hadoop-mapreduce-client-common-2.6.5.jar;D:\spark-2.2.0\hadoop-mapreduce-client-core-2.6.5.jar;D:\spark-2.2.0\hadoop-mapreduce-client-jobclient-2.6.5.jar;D:\spark-2.2.0\hadoop-mapreduce-client-shuffle-2.6.5.jar;D:\spark-2.2.0\hadoop-yarn-api-2.6.5.jar;D:\spark-2.2.0\hadoop-yarn-client-2.6.5.jar;D:\spark-2.2.0\hadoop-yarn-common-2.6.5.jar;D:\spark-2.2.0\hadoop-yarn-server-common-2.6.5.jar;D:\spark-2.2.0\hive-contrib-0.13.1.jar;D:\spark-2.2.0\hive-hcatalog-core-0.13.1.jar;D:\spark-2.2.0\hk2-api-2.4.0-b34.jar;D:\spark-2.2.0\hk2-locator-2.4.0-b34.jar;D:\spark-2.2.0\hk2-utils-2.4.0-b34.jar;D:\spark-2.2.0\htrace-core-3.0.4.jar;D:\spark-2.2.0\httpclient-4.5.2.jar;D:\spark-2.2.0\httpcore-4.4.4.jar;D:\spark-2.2.0\ivy-2.4.0.jar;D:\spark-2.2.0\jackson-annotations-2.6.5.jar;D:\spark-2.2.0\jackson-core-2.6.5.jar;D:\spark-2.2.0\jackson-core-asl-1.9.13.jar;D:\spark-2.2.0\jackson-databind-2.6.5.jar;D:\spark-2.2.0\jackson-jaxrs-1.9.13.jar;D:\spark-2.2.0\jackson-mapper-asl-1.9.13.jar;D:\spark-2.2.0\jackson-module-paranamer-2.6.5.jar;D:\spark-2.2.0\jackson-module-scala_2.11-2.6.5.jar;D:\spark-2.2.0\jackson-xc-1.9.13.jar;D:\spark-2.2.0\janino-3.0.0.jar;D:\spark-2.2.0\java-xmlbuilder-1.0.jar;D:\spark-2.2.0\javassist-3.18.1-GA.jar;D:\spark-2.2.0\javax.annotation-api-1.2.jar;D:\spark-2.2.0\javax.inject-2.4.0-b34.jar;D:\spark-2.2.0\javax.servlet-api-3.1.0.jar;D:\spark-2.2.0\javax.ws.rs-api-2.0.1.jar;D:\spark-2.2.0\jaxb-api-2.2.2.jar;D:\spark-2.2.0\jcl-over-slf4j-1.7.16.jar;D:\spark-2.2.0\jersey-client-2.22.2.jar;D:\spark-2.2.0\jersey-common-2.22.2.jar;D:\spark-2.2.0\jersey-container-servlet-2.22.2.jar;D:\spark-2.2.0\jersey-container-servlet-core-2.22.2.jar;D:\spark-2.2.0\jersey-guava-2.22.2.jar;D:\spark-2.2.0\jersey-media-jaxb-2.22.2.jar;D:\spark-2.2.0\jersey-server-2.22.2.jar;D:\spark-2.2.0\jets3t-0.9.3.jar;D:\spark-2.2.0\jetty-client-9.3.11.v20160721.jar;D:\spark-2.2.0\jetty-continuation-9.3.11.v20160721.jar;D:\spark-2.2.0\jetty-http-9.3.11.v20160721.jar;D:\spark-2.2.0\jetty-io-9.3.11.v20160721.jar;D:\spark-2.2.0\jetty-plus-9.3.11.v20160721.jar;D:\spark-2.2.0\jetty-proxy-9.3.11.v20160721.jar;D:\spark-2.2.0\jetty-security-9.3.11.v20160721.jar;D:\spark-2.2.0\jetty-server-9.3.11.v20160721.jar;D:\spark-2.2.0\jetty-servlet-9.3.11.v20160721.jar;D:\spark-2.2.0\jetty-servlets-9.3.11.v20160721.jar;D:\spark-2.2.0\jetty-util-6.1.26.jar;D:\spark-2.2.0\jetty-util-9.3.11.v20160721.jar;D:\spark-2.2.0\jline-2.12.1.jar;D:\spark-2.2.0\json4s-ast_2.11-3.2.11.jar;D:\spark-2.2.0\json4s-core_2.11-3.2.11.jar;D:\spark-2.2.0\json4s-jackson_2.11-3.2.11.jar;D:\spark-2.2.0\jsr305-1.3.9.jar;D:\spark-2.2.0\jtransforms-2.4.0.jar;D:\spark-2.2.0\jul-to-slf4j-1.7.16.jar;D:\spark-2.2.0\kryo-shaded-3.0.3.jar;D:\spark-2.2.0\leveldbjni-all-1.8.jar;D:\spark-2.2.0\log4j-1.2.17.jar;D:\spark-2.2.0\lz4-1.3.0.jar;D:\spark-2.2.0\machinist_2.11-0.6.1.jar;D:\spark-2.2.0\macro-compat_2.11-1.1.1.jar;D:\spark-2.2.0\mail-1.4.7.jar;D:\spark-2.2.0\metrics-core-3.1.2.jar;D:\spark-2.2.0\metrics-graphite-3.1.2.jar;D:\spark-2.2.0\metrics-json-3.1.2.jar;D:\spark-2.2.0\metrics-jvm-3.1.2.jar;D:\spark-2.2.0\minlog-1.3.0.jar;D:\spark-2.2.0\mx4j-3.0.2.jar;D:\spark-2.2.0\netty-3.9.9.Final.jar;D:\spark-2.2.0\netty-all-4.0.43.Final.jar;D:\spark-2.2.0\objenesis-2.1.jar;D:\spark-2.2.0\opencsv-2.3.jar;D:\spark-2.2.0\original-spark-catalyst_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-core_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-examples_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-graphx_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-hive_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-launcher_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-mllib-local_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-mllib_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-network-common_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-network-shuffle_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-repl_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-sketch_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-sql-kafka-0-10_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-sql_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-streaming-flume-sink_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-streaming-flume_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-streaming-kafka-0-10_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-streaming-kafka-0-8_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-streaming_2.11-2.2.0-tests.jar;D:\spark-2.2.0\original-spark-streaming_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-tags_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-tools_2.11-2.2.0.jar;D:\spark-2.2.0\original-spark-unsafe_2.11-2.2.0.jar;D:\spark-2.2.0\oro-2.0.8.jar;D:\spark-2.2.0\osgi-resource-locator-1.0.1.jar;D:\spark-2.2.0\paranamer-2.6.jar;D:\spark-2.2.0\parquet-column-1.8.2.jar;D:\spark-2.2.0\parquet-common-1.8.2.jar;D:\spark-2.2.0\parquet-encoding-1.8.2.jar;D:\spark-2.2.0\parquet-format-2.3.1.jar;D:\spark-2.2.0\parquet-hadoop-1.8.2.jar;D:\spark-2.2.0\parquet-jackson-1.8.2.jar;D:\spark-2.2.0\pmml-model-1.2.15.jar;D:\spark-2.2.0\pmml-schema-1.2.15.jar;D:\spark-2.2.0\protobuf-java-2.5.0.jar;D:\spark-2.2.0\py4j-0.10.4.jar;D:\spark-2.2.0\pyrolite-4.13.jar;D:\spark-2.2.0\RoaringBitmap-0.5.11.jar;D:\spark-2.2.0\scala-compiler-2.11.8.jar;D:\spark-2.2.0\scala-library-2.11.8.jar;D:\spark-2.2.0\scala-parser-combinators_2.11-1.0.4.jar;D:\spark-2.2.0\scala-reflect-2.11.8.jar;D:\spark-2.2.0\scala-xml_2.11-1.0.2.jar;D:\spark-2.2.0\scalap-2.11.8.jar;D:\spark-2.2.0\scopt_2.11-3.3.0.jar;D:\spark-2.2.0\shapeless_2.11-2.3.2.jar;D:\spark-2.2.0\slf4j-api-1.7.16.jar;D:\spark-2.2.0\slf4j-log4j12-1.7.16.jar;D:\spark-2.2.0\snappy-java-1.1.2.6.jar;D:\spark-2.2.0\spark-catalyst_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-catalyst_2.11-2.2.0.jar;D:\spark-2.2.0\spark-core_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-core_2.11-2.2.0.jar;D:\spark-2.2.0\spark-examples_2.11-2.2.0.jar;D:\spark-2.2.0\spark-graphx_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-graphx_2.11-2.2.0.jar;D:\spark-2.2.0\spark-hive_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-hive_2.11-2.2.0.jar;D:\spark-2.2.0\spark-launcher_2.11-2.2.0-shaded.jar;D:\spark-2.2.0\spark-launcher_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-launcher_2.11-2.2.0.jar;D:\spark-2.2.0\spark-mllib-local_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-mllib-local_2.11-2.2.0.jar;D:\spark-2.2.0\spark-mllib_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-mllib_2.11-2.2.0.jar;D:\spark-2.2.0\spark-network-common_2.11-2.2.0-shaded.jar;D:\spark-2.2.0\spark-network-common_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-network-common_2.11-2.2.0.jar;D:\spark-2.2.0\spark-network-shuffle_2.11-2.2.0-shaded.jar;D:\spark-2.2.0\spark-network-shuffle_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-network-shuffle_2.11-2.2.0.jar;D:\spark-2.2.0\spark-repl_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-repl_2.11-2.2.0.jar;D:\spark-2.2.0\spark-sketch_2.11-2.2.0-shaded.jar;D:\spark-2.2.0\spark-sketch_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-sketch_2.11-2.2.0.jar;D:\spark-2.2.0\spark-sql-kafka-0-10_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-sql-kafka-0-10_2.11-2.2.0.jar;D:\spark-2.2.0\spark-sql_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-sql_2.11-2.2.0.jar;D:\spark-2.2.0\spark-streaming-flume-assembly_2.11-2.2.0.jar;D:\spark-2.2.0\spark-streaming-flume-sink_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-streaming-flume-sink_2.11-2.2.0.jar;D:\spark-2.2.0\spark-streaming-flume_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-streaming-flume_2.11-2.2.0.jar;D:\spark-2.2.0\spark-streaming-kafka-0-10-assembly_2.11-2.2.0.jar;D:\spark-2.2.0\spark-streaming-kafka-0-10_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-streaming-kafka-0-10_2.11-2.2.0.jar;D:\spark-2.2.0\spark-streaming-kafka-0-8-assembly_2.11-2.2.0.jar;D:\spark-2.2.0\spark-streaming-kafka-0-8_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-streaming-kafka-0-8_2.11-2.2.0.jar;D:\spark-2.2.0\spark-streaming_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-streaming_2.11-2.2.0.jar;D:\spark-2.2.0\spark-tags_2.11-2.2.0-shaded.jar;D:\spark-2.2.0\spark-tags_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-tags_2.11-2.2.0.jar;D:\spark-2.2.0\spark-tools_2.11-2.2.0.jar;D:\spark-2.2.0\spark-unsafe_2.11-2.2.0-shaded.jar;D:\spark-2.2.0\spark-unsafe_2.11-2.2.0-tests.jar;D:\spark-2.2.0\spark-unsafe_2.11-2.2.0.jar;D:\spark-2.2.0\spire-macros_2.11-0.13.0.jar;D:\spark-2.2.0\spire_2.11-0.13.0.jar;D:\spark-2.2.0\stax-api-1.0-2.jar;D:\spark-2.2.0\stream-2.7.0.jar;D:\spark-2.2.0\test-2.10.jar;D:\spark-2.2.0\test-2.11.jar;D:\spark-2.2.0\TestSerDe.jar;D:\spark-2.2.0\TestUDTF.jar;D:\spark-2.2.0\univocity-parsers-2.2.1.jar;D:\spark-2.2.0\validation-api-1.1.0.Final.jar;D:\spark-2.2.0\xbean-asm5-shaded-4.4.jar;D:\spark-2.2.0\xercesImpl-2.9.1.jar;D:\spark-2.2.0\xmlenc-0.52.jar;D:\spark-2.2.0\xz-1.0.jar;D:\spark-2.2.0\zookeeper-3.4.6.jar;E:\repository\org\scalatest\scalatest_2.11\2.2.6\scalatest_2.11-2.2.6.jar;E:\repository\org\scala-lang\scala-reflect\2.11.7\scala-reflect-2.11.7.jar;E:\repository\org\scala-lang\modules\scala-xml_2.11\1.0.2\scala-xml_2.11-1.0.2.jar;E:\repository\org\scalatest\scalatest-core_2.11\3.2.0-M1\scalatest-core_2.11-3.2.0-M1.jar;E:\repository\org\scalatest\scalatest-compatible\3.2.0-M1\scalatest-compatible-3.2.0-M1.jar;E:\repository\org\scalactic\scalactic_2.11\3.2.0-M1\scalactic_2.11-3.2.0-M1.jar;E:\repository\org\scalatest\scalatest-funsuite_2.11\3.2.0-M1\scalatest-funsuite_2.11-3.2.0-M1.jar;E:\repository\org\scalatest\scalatest-funspec_2.11\3.2.0-M1\scalatest-funspec_2.11-3.2.0-M1.jar;E:\repository\org\scala-lang\scala-library\2.11.2\scala-library-2.11.2.jar;D:\test\lib\spark-graphx_2.11-2.2.0.jar;D:\test\lib\spark-mllib_2.11-2.2.0.jar;D:\test\lib\spark-core_2.11-2.2.0.jar;D:\test\lib\spark-tags_2.11-2.2.0.jar;D:\test\lib\commons-compress-1.4.1.jar;D:\test\lib\hadoop-common-2.6.5.jar;D:\test\lib\jackson-annotations-2.6.5.jar;D:\test\lib\hadoop-mapreduce-client-core-2.6.5.jar;D:\test\lib\avro-1.7.7.jar;D:\test\lib\activation-1.1.1.jar;E:\repository\com\google\code\google-collections\google-collect\snapshot-20080530\google-collect-snapshot-20080530.jar;E:\repository\org\opencypher\spark-cypher\0.1.5\spark-cypher-0.1.5.jar;E:\repository\org\opencypher\okapi-relational\0.1.5\okapi-relational-0.1.5.jar;E:\repository\org\opencypher\okapi-logical\0.1.5\okapi-logical-0.1.5.jar;E:\repository\org\opencypher\okapi-ir\0.1.5\okapi-ir-0.1.5.jar;E:\repository\org\opencypher\okapi-api\0.1.5\okapi-api-0.1.5.jar;E:\repository\org\typelevel\cats-core_2.11\1.0.1\cats-core_2.11-1.0.1.jar;E:\repository\org\typelevel\cats-macros_2.11\1.0.1\cats-macros_2.11-1.0.1.jar;E:\repository\org\typelevel\cats-kernel_2.11\1.0.1\cats-kernel_2.11-1.0.1.jar;E:\repository\org\typelevel\machinist_2.11\0.6.2\machinist_2.11-0.6.2.jar;E:\repository\org\opencypher\okapi-trees\0.1.5\okapi-trees-0.1.5.jar;E:\repository\com\lihaoyi\upickle_2.11\0.6.6\upickle_2.11-0.6.6.jar;E:\repository\com\lihaoyi\ujson_2.11\0.6.6\ujson_2.11-0.6.6.jar;E:\repository\org\opencypher\front-end-9.1\2.0.0\front-end-9.1-2.0.0.jar;E:\repository\org\opencypher\util-9.1\2.0.0\util-9.1-2.0.0.jar;E:\repository\org\opencypher\expressions-9.1\2.0.0\expressions-9.1-2.0.0.jar;E:\repository\org\opencypher\rewriting-9.1\2.0.0\rewriting-9.1-2.0.0.jar;E:\repository\org\opencypher\ast-9.1\2.0.0\ast-9.1-2.0.0.jar;E:\repository\org\opencypher\parser-9.1\2.0.0\parser-9.1-2.0.0.jar;E:\repository\org\scalacheck\scalacheck_2.11\1.12.5\scalacheck_2.11-1.12.5.jar;E:\repository\org\scala-sbt\test-interface\1.0\test-interface-1.0.jar;E:\repository\org\parboiled\parboiled-scala_2.11\1.1.7\parboiled-scala_2.11-1.1.7.jar;E:\repository\org\parboiled\parboiled-core\1.1.7\parboiled-core-1.1.7.jar;E:\repository\org\atnos\eff_2.11\5.0.0\eff_2.11-5.0.0.jar;E:\repository\org\apache\spark\spark-core_2.11\2.2.1\spark-core_2.11-2.2.1.jar;E:\repository\org\apache\avro\avro\1.7.7\avro-1.7.7.jar;E:\repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;E:\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;E:\repository\com\thoughtworks\paranamer\paranamer\2.3\paranamer-2.3.jar;E:\repository\org\apache\commons\commons-compress\1.4.1\commons-compress-1.4.1.jar;E:\repository\org\tukaani\xz\1.0\xz-1.0.jar;E:\repository\org\apache\avro\avro-mapred\1.7.7\avro-mapred-1.7.7-hadoop2.jar;E:\repository\org\apache\avro\avro-ipc\1.7.7\avro-ipc-1.7.7.jar;E:\repository\org\apache\avro\avro-ipc\1.7.7\avro-ipc-1.7.7-tests.jar;E:\repository\com\twitter\chill_2.11\0.8.0\chill_2.11-0.8.0.jar;E:\repository\com\esotericsoftware\kryo-shaded\3.0.3\kryo-shaded-3.0.3.jar;E:\repository\com\esotericsoftware\minlog\1.3.0\minlog-1.3.0.jar;E:\repository\org\objenesis\objenesis\2.1\objenesis-2.1.jar;E:\repository\com\twitter\chill-java\0.8.0\chill-java-0.8.0.jar;E:\repository\org\apache\xbean\xbean-asm5-shaded\4.4\xbean-asm5-shaded-4.4.jar;E:\repository\org\apache\hadoop\hadoop-client\2.6.5\hadoop-client-2.6.5.jar;E:\repository\org\apache\hadoop\hadoop-common\2.6.5\hadoop-common-2.6.5.jar;E:\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;E:\repository\xmlenc\xmlenc\0.52\xmlenc-0.52.jar;E:\repository\commons-httpclient\commons-httpclient\3.1\commons-httpclient-3.1.jar;E:\repository\commons-io\commons-io\2.4\commons-io-2.4.jar;E:\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;E:\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;E:\repository\commons-configuration\commons-configuration\1.6\commons-configuration-1.6.jar;E:\repository\commons-digester\commons-digester\1.8\commons-digester-1.8.jar;E:\repository\commons-beanutils\commons-beanutils\1.7.0\commons-beanutils-1.7.0.jar;E:\repository\commons-beanutils\commons-beanutils-core\1.8.0\commons-beanutils-core-1.8.0.jar;E:\repository\com\google\protobuf\protobuf-java\2.5.0\protobuf-java-2.5.0.jar;E:\repository\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;E:\repository\org\apache\hadoop\hadoop-auth\2.6.5\hadoop-auth-2.6.5.jar;E:\repository\org\apache\directory\server\apacheds-kerberos-codec\2.0.0-M15\apacheds-kerberos-codec-2.0.0-M15.jar;E:\repository\org\apache\directory\server\apacheds-i18n\2.0.0-M15\apacheds-i18n-2.0.0-M15.jar;E:\repository\org\apache\directory\api\api-asn1-api\1.0.0-M20\api-asn1-api-1.0.0-M20.jar;E:\repository\org\apache\directory\api\api-util\1.0.0-M20\api-util-1.0.0-M20.jar;E:\repository\org\apache\curator\curator-client\2.6.0\curator-client-2.6.0.jar;E:\repository\org\htrace\htrace-core\3.0.4\htrace-core-3.0.4.jar;E:\repository\org\apache\hadoop\hadoop-hdfs\2.6.5\hadoop-hdfs-2.6.5.jar;E:\repository\org\mortbay\jetty\jetty-util\6.1.26\jetty-util-6.1.26.jar;E:\repository\xerces\xercesImpl\2.9.1\xercesImpl-2.9.1.jar;E:\repository\xml-apis\xml-apis\1.3.04\xml-apis-1.3.04.jar;E:\repository\org\apache\hadoop\hadoop-mapreduce-client-app\2.6.5\hadoop-mapreduce-client-app-2.6.5.jar;E:\repository\org\apache\hadoop\hadoop-mapreduce-client-common\2.6.5\hadoop-mapreduce-client-common-2.6.5.jar;E:\repository\org\apache\hadoop\hadoop-yarn-client\2.6.5\hadoop-yarn-client-2.6.5.jar;E:\repository\org\apache\hadoop\hadoop-yarn-server-common\2.6.5\hadoop-yarn-server-common-2.6.5.jar;E:\repository\org\apache\hadoop\hadoop-mapreduce-client-shuffle\2.6.5\hadoop-mapreduce-client-shuffle-2.6.5.jar;E:\repository\org\apache\hadoop\hadoop-yarn-api\2.6.5\hadoop-yarn-api-2.6.5.jar;E:\repository\org\apache\hadoop\hadoop-mapreduce-client-core\2.6.5\hadoop-mapreduce-client-core-2.6.5.jar;E:\repository\org\apache\hadoop\hadoop-yarn-common\2.6.5\hadoop-yarn-common-2.6.5.jar;E:\repository\javax\xml\bind\jaxb-api\2.2.2\jaxb-api-2.2.2.jar;E:\repository\javax\xml\stream\stax-api\1.0-2\stax-api-1.0-2.jar;E:\repository\org\codehaus\jackson\jackson-jaxrs\1.9.13\jackson-jaxrs-1.9.13.jar;E:\repository\org\codehaus\jackson\jackson-xc\1.9.13\jackson-xc-1.9.13.jar;E:\repository\org\apache\hadoop\hadoop-mapreduce-client-jobclient\2.6.5\hadoop-mapreduce-client-jobclient-2.6.5.jar;E:\repository\org\apache\hadoop\hadoop-annotations\2.6.5\hadoop-annotations-2.6.5.jar;E:\repository\org\apache\spark\spark-launcher_2.11\2.2.1\spark-launcher_2.11-2.2.1.jar;E:\repository\org\apache\spark\spark-network-common_2.11\2.2.1\spark-network-common_2.11-2.2.1.jar;E:\repository\org\fusesource\leveldbjni\leveldbjni-all\1.8\leveldbjni-all-1.8.jar;E:\repository\com\fasterxml\jackson\core\jackson-annotations\2.6.5\jackson-annotations-2.6.5.jar;E:\repository\org\apache\spark\spark-network-shuffle_2.11\2.2.1\spark-network-shuffle_2.11-2.2.1.jar;E:\repository\org\apache\spark\spark-unsafe_2.11\2.2.1\spark-unsafe_2.11-2.2.1.jar;E:\repository\net\java\dev\jets3t\jets3t\0.9.3\jets3t-0.9.3.jar;E:\repository\org\apache\httpcomponents\httpcore\4.3.3\httpcore-4.3.3.jar;E:\repository\org\apache\httpcomponents\httpclient\4.3.6\httpclient-4.3.6.jar;E:\repository\javax\activation\activation\1.1.1\activation-1.1.1.jar;E:\repository\mx4j\mx4j\3.0.2\mx4j-3.0.2.jar;E:\repository\javax\mail\mail\1.4.7\mail-1.4.7.jar;E:\repository\org\bouncycastle\bcprov-jdk15on\1.51\bcprov-jdk15on-1.51.jar;E:\repository\com\jamesmurty\utils\java-xmlbuilder\1.0\java-xmlbuilder-1.0.jar;E:\repository\net\iharder\base64\2.3.8\base64-2.3.8.jar;E:\repository\org\apache\curator\curator-recipes\2.6.0\curator-recipes-2.6.0.jar;E:\repository\org\apache\curator\curator-framework\2.6.0\curator-framework-2.6.0.jar;E:\repository\org\apache\zookeeper\zookeeper\3.4.6\zookeeper-3.4.6.jar;E:\repository\javax\servlet\javax.servlet-api\3.1.0\javax.servlet-api-3.1.0.jar;E:\repository\org\apache\commons\commons-lang3\3.5\commons-lang3-3.5.jar;E:\repository\org\apache\commons\commons-math3\3.4.1\commons-math3-3.4.1.jar;E:\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;E:\repository\org\slf4j\jul-to-slf4j\1.7.16\jul-to-slf4j-1.7.16.jar;E:\repository\org\slf4j\jcl-over-slf4j\1.7.16\jcl-over-slf4j-1.7.16.jar;E:\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;E:\repository\org\slf4j\slf4j-log4j12\1.7.16\slf4j-log4j12-1.7.16.jar;E:\repository\com\ning\compress-lzf\1.0.3\compress-lzf-1.0.3.jar;E:\repository\org\xerial\snappy\snappy-java\1.1.2.6\snappy-java-1.1.2.6.jar;E:\repository\net\jpountz\lz4\lz4\1.3.0\lz4-1.3.0.jar;E:\repository\org\roaringbitmap\RoaringBitmap\0.5.11\RoaringBitmap-0.5.11.jar;E:\repository\commons-net\commons-net\2.2\commons-net-2.2.jar;E:\repository\org\json4s\json4s-jackson_2.11\3.2.11\json4s-jackson_2.11-3.2.11.jar;E:\repository\org\json4s\json4s-core_2.11\3.2.11\json4s-core_2.11-3.2.11.jar;E:\repository\org\json4s\json4s-ast_2.11\3.2.11\json4s-ast_2.11-3.2.11.jar;E:\repository\org\scala-lang\scalap\2.11.0\scalap-2.11.0.jar;E:\repository\org\glassfish\jersey\core\jersey-client\2.22.2\jersey-client-2.22.2.jar;E:\repository\javax\ws\rs\javax.ws.rs-api\2.0.1\javax.ws.rs-api-2.0.1.jar;E:\repository\org\glassfish\hk2\hk2-api\2.4.0-b34\hk2-api-2.4.0-b34.jar;E:\repository\org\glassfish\hk2\hk2-utils\2.4.0-b34\hk2-utils-2.4.0-b34.jar;E:\repository\org\glassfish\hk2\external\aopalliance-repackaged\2.4.0-b34\aopalliance-repackaged-2.4.0-b34.jar;E:\repository\org\glassfish\hk2\external\javax.inject\2.4.0-b34\javax.inject-2.4.0-b34.jar;E:\repository\org\glassfish\hk2\hk2-locator\2.4.0-b34\hk2-locator-2.4.0-b34.jar;E:\repository\org\javassist\javassist\3.18.1-GA\javassist-3.18.1-GA.jar;E:\repository\org\glassfish\jersey\core\jersey-common\2.22.2\jersey-common-2.22.2.jar;E:\repository\javax\annotation\javax.annotation-api\1.2\javax.annotation-api-1.2.jar;E:\repository\org\glassfish\jersey\bundles\repackaged\jersey-guava\2.22.2\jersey-guava-2.22.2.jar;E:\repository\org\glassfish\hk2\osgi-resource-locator\1.0.1\osgi-resource-locator-1.0.1.jar;E:\repository\org\glassfish\jersey\core\jersey-server\2.22.2\jersey-server-2.22.2.jar;E:\repository\org\glassfish\jersey\media\jersey-media-jaxb\2.22.2\jersey-media-jaxb-2.22.2.jar;E:\repository\javax\validation\validation-api\1.1.0.Final\validation-api-1.1.0.Final.jar;E:\repository\org\glassfish\jersey\containers\jersey-container-servlet\2.22.2\jersey-container-servlet-2.22.2.jar;E:\repository\org\glassfish\jersey\containers\jersey-container-servlet-core\2.22.2\jersey-container-servlet-core-2.22.2.jar;E:\repository\io\netty\netty-all\4.0.43.Final\netty-all-4.0.43.Final.jar;E:\repository\io\netty\netty\3.9.9.Final\netty-3.9.9.Final.jar;E:\repository\com\clearspring\analytics\stream\2.7.0\stream-2.7.0.jar;E:\repository\io\dropwizard\metrics\metrics-core\3.1.2\metrics-core-3.1.2.jar;E:\repository\io\dropwizard\metrics\metrics-jvm\3.1.2\metrics-jvm-3.1.2.jar;E:\repository\io\dropwizard\metrics\metrics-json\3.1.2\metrics-json-3.1.2.jar;E:\repository\io\dropwizard\metrics\metrics-graphite\3.1.2\metrics-graphite-3.1.2.jar;E:\repository\com\fasterxml\jackson\core\jackson-databind\2.6.5\jackson-databind-2.6.5.jar;E:\repository\com\fasterxml\jackson\core\jackson-core\2.6.5\jackson-core-2.6.5.jar;E:\repository\com\fasterxml\jackson\module\jackson-module-scala_2.11\2.6.5\jackson-module-scala_2.11-2.6.5.jar;E:\repository\com\fasterxml\jackson\module\jackson-module-paranamer\2.6.5\jackson-module-paranamer-2.6.5.jar;E:\repository\org\apache\ivy\ivy\2.4.0\ivy-2.4.0.jar;E:\repository\oro\oro\2.0.8\oro-2.0.8.jar;E:\repository\net\razorvine\pyrolite\4.13\pyrolite-4.13.jar;E:\repository\net\sf\py4j\py4j\0.10.4\py4j-0.10.4.jar;E:\repository\org\apache\spark\spark-tags_2.11\2.2.1\spark-tags_2.11-2.2.1.jar;E:\repository\org\apache\commons\commons-crypto\1.0.0\commons-crypto-1.0.0.jar;E:\repository\org\spark-project\spark\unused\1.0.0\unused-1.0.0.jar;E:\repository\org\apache\spark\spark-sql_2.11\2.2.1\spark-sql_2.11-2.2.1.jar;E:\repository\com\univocity\univocity-parsers\2.2.1\univocity-parsers-2.2.1.jar;E:\repository\org\apache\spark\spark-sketch_2.11\2.2.1\spark-sketch_2.11-2.2.1.jar;E:\repository\org\apache\parquet\parquet-column\1.8.2\parquet-column-1.8.2.jar;E:\repository\org\apache\parquet\parquet-common\1.8.2\parquet-common-1.8.2.jar;E:\repository\org\apache\parquet\parquet-encoding\1.8.2\parquet-encoding-1.8.2.jar;E:\repository\org\apache\parquet\parquet-hadoop\1.8.2\parquet-hadoop-1.8.2.jar;E:\repository\org\apache\parquet\parquet-format\2.3.1\parquet-format-2.3.1.jar;E:\repository\org\apache\parquet\parquet-jackson\1.8.2\parquet-jackson-1.8.2.jar;E:\repository\org\apache\spark\spark-catalyst_2.11\2.2.1\spark-catalyst_2.11-2.2.1.jar;E:\repository\org\codehaus\janino\janino\3.0.0\janino-3.0.0.jar;E:\repository\org\codehaus\janino\commons-compiler\3.0.0\commons-compiler-3.0.0.jar;E:\repository\org\antlr\antlr4-runtime\4.5.3\antlr4-runtime-4.5.3.jar;E:\repository\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;E:\repository\org\neo4j\driver\neo4j-java-driver\1.6.1\neo4j-java-driver-1.6.1.jar;E:\repository\org\scala-lang\scala-compiler\2.11.12\scala-compiler-2.11.12.jar;E:\repository\org\scala-lang\modules\scala-parser-combinators_2.11\1.0.4\scala-parser-combinators_2.11-1.0.4.jar;E:\repository\com\google\guava\guava\14.0.1\guava-14.0.1.jar;D:\test\lib\slf4j-api-1.7.16.jar" neo4j.TestVI
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/spark-2.2.0/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/E:/repository/org/slf4j/slf4j-log4j12/1.7.16/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
================================
                0                
================================
id: 4 msg: Map() attr: (Map(4 -> ListBuffer(Set(4))),ListBuffer(),0)
id: 11 msg: Map() attr: (Map(11 -> ListBuffer(Set(11))),ListBuffer(),0)
id: 0 msg: Map() attr: (Map(0 -> ListBuffer(Set(0))),ListBuffer(),0)
id: 1 msg: Map() attr: (Map(1 -> ListBuffer(Set(1))),ListBuffer(),0)
id: 6 msg: Map() attr: (Map(6 -> ListBuffer(Set(6))),ListBuffer(),0)
id: 3 msg: Map() attr: (Map(3 -> ListBuffer(Set(3))),ListBuffer(),0)
id: 12 msg: Map() attr: (Map(12 -> ListBuffer(Set(12))),ListBuffer(),0)
id: 9 msg: Map() attr: (Map(9 -> ListBuffer(Set(9))),ListBuffer(),0)
id: 7 msg: Map() attr: (Map(7 -> ListBuffer(Set(7))),ListBuffer(),0)
id: 8 msg: Map() attr: (Map(8 -> ListBuffer(Set(8))),ListBuffer(),0)
id: 10 msg: Map() attr: (Map(10 -> ListBuffer(Set(10))),ListBuffer(),0)
id: 5 msg: Map() attr: (Map(5 -> ListBuffer(Set(5))),ListBuffer(),0)
id: 2 msg: Map() attr: (Map(2 -> ListBuffer(Set(2))),ListBuffer(),0)
================================
                1                
================================
id: 4 msg: Map(5 -> ListBuffer(Set(5))) attr: (Map(4 -> ListBuffer(Set(4))),ListBuffer(),1)
id: 11 msg: Map(10 -> ListBuffer(Set(10)), 12 -> ListBuffer(Set(12))) attr: (Map(11 -> ListBuffer(Set(11))),ListBuffer(),1)
id: 0 msg: Map(1 -> ListBuffer(Set(1)), 3 -> ListBuffer(Set(3)), 9 -> ListBuffer(Set(9))) attr: (Map(0 -> ListBuffer(Set(0))),ListBuffer(),1)
id: 1 msg: Map(2 -> ListBuffer(Set(2))) attr: (Map(1 -> ListBuffer(Set(1))),ListBuffer(),1)
id: 6 msg: Map(7 -> ListBuffer(Set(7))) attr: (Map(6 -> ListBuffer(Set(6))),ListBuffer(),1)
id: 3 msg: Map(4 -> ListBuffer(Set(4)), 0 -> ListBuffer(Set(0))) attr: (Map(3 -> ListBuffer(Set(3))),ListBuffer(),1)
id: 12 msg: Map(11 -> ListBuffer(Set(11)), 10 -> ListBuffer(Set(10))) attr: (Map(12 -> ListBuffer(Set(12))),ListBuffer(),1)
id: 9 msg: Map(0 -> ListBuffer(Set(0))) attr: (Map(9 -> ListBuffer(Set(9))),ListBuffer(),1)
id: 7 msg: Map(8 -> ListBuffer(Set(8)), 10 -> ListBuffer(Set(10))) attr: (Map(7 -> ListBuffer(Set(7))),ListBuffer(),1)
id: 8 msg: Map(0 -> ListBuffer(Set(0))) attr: (Map(8 -> ListBuffer(Set(8))),ListBuffer(),1)
id: 10 msg: Map(11 -> ListBuffer(Set(11)), 7 -> ListBuffer(Set(7)), 12 -> ListBuffer(Set(12))) attr: (Map(10 -> ListBuffer(Set(10))),ListBuffer(),1)
id: 5 msg: Map(6 -> ListBuffer(Set(6))) attr: (Map(5 -> ListBuffer(Set(5))),ListBuffer(),1)
id: 2 msg: Map(3 -> ListBuffer(Set(3))) attr: (Map(2 -> ListBuffer(Set(2))),ListBuffer(),1)
================================
                2                
================================
id: 4 msg: Map(5 -> ListBuffer(Set(6))) attr: (Map(5 -> ListBuffer(Set(5))),ListBuffer(),2)
id: 11 msg: Map(10 -> ListBuffer(Set(11), Set(7), Set(12)), 12 -> ListBuffer(Set(11), Set(10))) attr: (Map(10 -> ListBuffer(Set(10)), 12 -> ListBuffer(Set(12))),ListBuffer(),2)
id: 0 msg: Map(1 -> ListBuffer(Set(2)), 3 -> ListBuffer(Set(4), Set(0)), 9 -> ListBuffer(Set(0))) attr: (Map(1 -> ListBuffer(Set(1)), 9 -> ListBuffer(Set(9)), 3 -> ListBuffer(Set(3))),ListBuffer(),2)
id: 1 msg: Map(2 -> ListBuffer(Set(3))) attr: (Map(2 -> ListBuffer(Set(2))),ListBuffer(),2)
id: 6 msg: Map(7 -> ListBuffer(Set(8), Set(10))) attr: (Map(7 -> ListBuffer(Set(7))),ListBuffer(),2)
id: 3 msg: Map(4 -> ListBuffer(Set(5)), 0 -> ListBuffer(Set(1), Set(3), Set(9))) attr: (Map(4 -> ListBuffer(Set(4)), 0 -> ListBuffer(Set(0))),ListBuffer(),2)
id: 12 msg: Map(11 -> ListBuffer(Set(10), Set(12)), 10 -> ListBuffer(Set(11), Set(7), Set(12))) attr: (Map(11 -> ListBuffer(Set(11)), 10 -> ListBuffer(Set(10))),ListBuffer(),2)
id: 9 msg: Map(0 -> ListBuffer(Set(1), Set(3), Set(9))) attr: (Map(0 -> ListBuffer(Set(0))),ListBuffer(),2)
id: 7 msg: Map(8 -> ListBuffer(Set(0)), 10 -> ListBuffer(Set(11), Set(7), Set(12))) attr: (Map(8 -> ListBuffer(Set(8)), 10 -> ListBuffer(Set(10))),ListBuffer(),2)
id: 8 msg: Map(0 -> ListBuffer(Set(1), Set(3), Set(9))) attr: (Map(0 -> ListBuffer(Set(0))),ListBuffer(),2)
id: 10 msg: Map(11 -> ListBuffer(Set(10), Set(12)), 7 -> ListBuffer(Set(8), Set(10)), 12 -> ListBuffer(Set(11), Set(10))) attr: (Map(11 -> ListBuffer(Set(11)), 7 -> ListBuffer(Set(7)), 12 -> ListBuffer(Set(12))),ListBuffer(),2)
id: 5 msg: Map(6 -> ListBuffer(Set(7))) attr: (Map(6 -> ListBuffer(Set(6))),ListBuffer(),2)
id: 2 msg: Map(3 -> ListBuffer(Set(4), Set(0))) attr: (Map(3 -> ListBuffer(Set(3))),ListBuffer(),2)
================================
                3                
================================
id: 4 msg: Map(5 -> ListBuffer(Set(6, 7))) attr: (Map(5 -> ListBuffer(Set(5, 6))),ListBuffer(),3)
id: 11 msg: Map(10 -> ListBuffer(Set(11, 12), Set(7, 8), Set(12, 11)), 12 -> ListBuffer(Set(11, 10), Set(10, 11), Set(10, 7))) attr: (Map(10 -> ListBuffer(Set(10, 7), Set(10, 12)), 12 -> ListBuffer(Set(12, 10))),ListBuffer(Set(10, 11), Set(12, 11)),3)
order operate: Set(10, 7) Set(11, 12)
order operate: Set(10, 12) Set(11, 12)
order operate: Set(10, 7) Set(7, 8)
order operate: Set(10, 12) Set(7, 8)
order operate: Set(10, 7) Set(12, 11)
order operate: Set(10, 12) Set(12, 11)
order operate: Set(12, 10) Set(11, 10)
order operate: Set(12, 10) Set(10, 11)
order operate: Set(12, 10) Set(10, 7)
id: 0 msg: Map(1 -> ListBuffer(Set(2, 3)), 3 -> ListBuffer(Set(4, 5), Set(0, 1), Set(0, 9)), 9 -> ListBuffer(Set(0, 1), Set(0, 3))) attr: (Map(1 -> ListBuffer(Set(1, 2)), 3 -> ListBuffer(Set(3, 4))),ListBuffer(Set(9, 0), Set(3, 0)),3)
id: 1 msg: Map(2 -> ListBuffer(Set(3, 4), Set(3, 0))) attr: (Map(2 -> ListBuffer(Set(2, 3))),ListBuffer(),3)
id: 6 msg: Map(7 -> ListBuffer(Set(8, 0), Set(10, 11), Set(10, 12))) attr: (Map(7 -> ListBuffer(Set(7, 8), Set(7, 10))),ListBuffer(),3)
id: 3 msg: Map(4 -> ListBuffer(Set(5, 6)), 0 -> ListBuffer(Set(1, 2), Set(3, 4))) attr: (Map(4 -> ListBuffer(Set(4, 5)), 0 -> ListBuffer(Set(0, 1), Set(0, 9))),ListBuffer(Set(0, 3)),3)
id: 12 msg: Map(11 -> ListBuffer(Set(10, 7), Set(10, 12), Set(12, 10)), 10 -> ListBuffer(Set(11, 12), Set(7, 8), Set(12, 11))) attr: (Map(11 -> ListBuffer(Set(11, 10)), 10 -> ListBuffer(Set(10, 11), Set(10, 7))),ListBuffer(Set(11, 12), Set(10, 12)),3)
id: 9 msg: Map(0 -> ListBuffer(Set(1, 2), Set(3, 4))) attr: (Map(0 -> ListBuffer(Set(0, 1), Set(0, 3))),ListBuffer(Set(0, 9)),3)
id: 7 msg: Map(8 -> ListBuffer(Set(0, 1), Set(0, 3), Set(0, 9)), 10 -> ListBuffer(Set(11, 12), Set(7, 8), Set(12, 11))) attr: (Map(8 -> ListBuffer(Set(8, 0)), 10 -> ListBuffer(Set(10, 11), Set(10, 12))),ListBuffer(Set(10, 7)),3)
id: 8 msg: Map(0 -> ListBuffer(Set(1, 2), Set(3, 4))) attr: (Map(0 -> ListBuffer(Set(0, 1), Set(0, 3), Set(0, 9))),ListBuffer(),3)
id: 10 msg: Map(11 -> ListBuffer(Set(10, 7), Set(10, 12), Set(12, 10)), 7 -> ListBuffer(Set(8, 0), Set(10, 11), Set(10, 12)), 12 -> ListBuffer(Set(11, 10), Set(10, 11), Set(10, 7))) attr: (Map(11 -> ListBuffer(Set(11, 12)), 7 -> ListBuffer(Set(7, 8)), 12 -> ListBuffer(Set(12, 11))),ListBuffer(Set(11, 10), Set(7, 10), Set(12, 10)),3)
id: 5 msg: Map(6 -> ListBuffer(Set(7, 8), Set(7, 10))) attr: (Map(6 -> ListBuffer(Set(6, 7))),ListBuffer(),3)
id: 2 msg: Map(3 -> ListBuffer(Set(4, 5), Set(0, 1), Set(0, 9))) attr: (Map(3 -> ListBuffer(Set(3, 4), Set(3, 0))),ListBuffer(),3)
================================
                4                
================================
id: 4 msg: Map(5 -> ListBuffer(Set(6, 7, 8), Set(6, 7, 10))) attr: (Map(5 -> ListBuffer(Set(5, 6, 7))),ListBuffer(),4)
id: 11 msg: Map(10 -> ListBuffer(Set(7, 8, 0)), 12 -> ListBuffer(Set(11, 10, 7), Set(10, 7, 8))) attr: (Map(10 -> ListBuffer(Set(10, 7, 8)), 12 -> ListBuffer(Set(12, 10, 7))),ListBuffer(Set(10, 11), Set(12, 11), Set(10, 12, 11), Set(12, 10, 11)),4)
id: 0 msg: Map(1 -> ListBuffer(Set(2, 3, 4), Set(2, 3, 0)), 3 -> ListBuffer(Set(4, 5, 6), Set(0, 1, 2)), 9 -> ListBuffer(Set(0, 1, 2), Set(0, 3, 4))) attr: (Map(1 -> ListBuffer(Set(1, 2, 3)), 3 -> ListBuffer(Set(3, 4, 5))),ListBuffer(Set(9, 0), Set(3, 0)),4)
id: 1 msg: Map(2 -> ListBuffer(Set(3, 4, 5), Set(3, 0, 1), Set(3, 0, 9))) attr: (Map(2 -> ListBuffer(Set(2, 3, 4), Set(2, 3, 0))),ListBuffer(),4)
id: 6 msg: Map(7 -> ListBuffer(Set(8, 0, 1), Set(8, 0, 3), Set(8, 0, 9), Set(10, 11, 12), Set(10, 12, 11))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0), Set(7, 10, 11), Set(7, 10, 12))),ListBuffer(),4)
id: 3 msg: Map(4 -> ListBuffer(Set(5, 6, 7)), 0 -> ListBuffer(Set(1, 2, 3), Set(3, 4, 5))) attr: (Map(4 -> ListBuffer(Set(4, 5, 6)), 0 -> ListBuffer(Set(0, 1, 2))),ListBuffer(Set(0, 3)),4)
id: 12 msg: Map(11 -> ListBuffer(Set(10, 7, 8), Set(12, 10, 7)), 10 -> ListBuffer(Set(7, 8, 0))) attr: (Map(11 -> ListBuffer(Set(11, 10, 7)), 10 -> ListBuffer(Set(10, 7, 8))),ListBuffer(Set(11, 12), Set(10, 12), Set(11, 10, 12), Set(10, 11, 12)),4)
id: 9 msg: Map(0 -> ListBuffer(Set(1, 2, 3), Set(3, 4, 5))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2), Set(0, 3, 4))),ListBuffer(Set(0, 9)),4)
id: 7 msg: Map(8 -> ListBuffer(Set(0, 1, 2), Set(0, 3, 4)), 10 -> ListBuffer(Set(7, 8, 0))) attr: (Map(8 -> ListBuffer(Set(8, 0, 1), Set(8, 0, 3), Set(8, 0, 9)), 10 -> ListBuffer(Set(10, 11, 12), Set(10, 12, 11))),ListBuffer(Set(10, 7)),4)
id: 8 msg: Map(0 -> ListBuffer(Set(1, 2, 3), Set(3, 4, 5))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2), Set(0, 3, 4))),ListBuffer(),4)
id: 10 msg: Map(11 -> ListBuffer(Set(10, 7, 8), Set(12, 10, 7)), 7 -> ListBuffer(Set(8, 0, 1), Set(8, 0, 3), Set(8, 0, 9), Set(10, 11, 12), Set(10, 12, 11)), 12 -> ListBuffer(Set(11, 10, 7), Set(10, 7, 8))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0))),ListBuffer(Set(11, 10), Set(7, 10), Set(12, 10), Set(11, 12, 10), Set(12, 11, 10)),4)
id: 5 msg: Map(6 -> ListBuffer(Set(7, 8, 0), Set(7, 10, 11), Set(7, 10, 12))) attr: (Map(6 -> ListBuffer(Set(6, 7, 8), Set(6, 7, 10))),ListBuffer(),4)
id: 2 msg: Map(3 -> ListBuffer(Set(4, 5, 6), Set(0, 1, 2))) attr: (Map(3 -> ListBuffer(Set(3, 4, 5), Set(3, 0, 1), Set(3, 0, 9))),ListBuffer(),4)
================================
                5                
================================
id: 4 msg: Map(5 -> ListBuffer(Set(6, 7, 8, 0), Set(6, 7, 10, 11), Set(6, 7, 10, 12))) attr: (Map(5 -> ListBuffer(Set(5, 6, 7, 8), Set(5, 6, 7, 10))),ListBuffer(),5)
id: 11 msg: Map(10 -> ListBuffer(Set(7, 8, 0, 1), Set(7, 8, 0, 3), Set(7, 8, 0, 9)), 12 -> ListBuffer(Set(11, 10, 7, 8), Set(10, 7, 8, 0))) attr: (Map(10 -> ListBuffer(Set(10, 7, 8, 0)), 12 -> ListBuffer(Set(12, 10, 7, 8))),ListBuffer(Set(10, 11), Set(12, 11), Set(10, 12, 11), Set(12, 10, 11)),5)
id: 0 msg: Map(1 -> ListBuffer(Set(2, 3, 4, 5), Set(2, 3, 0, 9)), 3 -> ListBuffer(Set(4, 5, 6, 7)), 9 -> ListBuffer(Set(0, 1, 2, 3), Set(0, 3, 4, 5))) attr: (Map(1 -> ListBuffer(Set(1, 2, 3, 4)), 3 -> ListBuffer(Set(3, 4, 5, 6))),ListBuffer(Set(9, 0), Set(3, 0), Set(1, 2, 3, 0)),5)
id: 1 msg: Map(2 -> ListBuffer(Set(3, 4, 5, 6))) attr: (Map(2 -> ListBuffer(Set(2, 3, 4, 5), Set(2, 3, 0, 9))),ListBuffer(Set(2, 3, 0, 1)),5)
id: 6 msg: Map(7 -> ListBuffer(Set(8, 0, 1, 2), Set(8, 0, 3, 4))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1), Set(7, 8, 0, 3), Set(7, 8, 0, 9), Set(7, 10, 11, 12), Set(7, 10, 12, 11))),ListBuffer(),5)
id: 3 msg: Map(4 -> ListBuffer(Set(5, 6, 7, 8), Set(5, 6, 7, 10)), 0 -> ListBuffer(Set(1, 2, 3, 4), Set(3, 4, 5, 6))) attr: (Map(4 -> ListBuffer(Set(4, 5, 6, 7))),ListBuffer(Set(0, 3), Set(0, 1, 2, 3)),5)
id: 12 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0), Set(12, 10, 7, 8)), 10 -> ListBuffer(Set(7, 8, 0, 1), Set(7, 8, 0, 3), Set(7, 8, 0, 9))) attr: (Map(11 -> ListBuffer(Set(11, 10, 7, 8)), 10 -> ListBuffer(Set(10, 7, 8, 0))),ListBuffer(Set(11, 12), Set(10, 12), Set(11, 10, 12), Set(10, 11, 12)),5)
id: 9 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4), Set(3, 4, 5, 6))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3), Set(0, 3, 4, 5))),ListBuffer(Set(0, 9)),5)
id: 7 msg: Map(8 -> ListBuffer(Set(0, 1, 2, 3), Set(0, 3, 4, 5)), 10 -> ListBuffer(Set(7, 8, 0, 1), Set(7, 8, 0, 3), Set(7, 8, 0, 9))) attr: (Map(8 -> ListBuffer(Set(8, 0, 1, 2), Set(8, 0, 3, 4))),ListBuffer(Set(10, 7)),5)
id: 8 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4), Set(3, 4, 5, 6))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3), Set(0, 3, 4, 5))),ListBuffer(),5)
id: 10 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0), Set(12, 10, 7, 8)), 7 -> ListBuffer(Set(8, 0, 1, 2), Set(8, 0, 3, 4)), 12 -> ListBuffer(Set(11, 10, 7, 8), Set(10, 7, 8, 0))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1), Set(7, 8, 0, 3), Set(7, 8, 0, 9))),ListBuffer(Set(11, 10), Set(7, 10), Set(12, 10), Set(11, 12, 10), Set(12, 11, 10)),5)
id: 5 msg: Map(6 -> ListBuffer(Set(7, 8, 0, 1), Set(7, 8, 0, 3), Set(7, 8, 0, 9), Set(7, 10, 11, 12), Set(7, 10, 12, 11))) attr: (Map(6 -> ListBuffer(Set(6, 7, 8, 0), Set(6, 7, 10, 11), Set(6, 7, 10, 12))),ListBuffer(),5)
id: 2 msg: Map(3 -> ListBuffer(Set(4, 5, 6, 7))) attr: (Map(3 -> ListBuffer(Set(3, 4, 5, 6))),ListBuffer(Set(3, 0, 1, 2)),5)
================================
                6                
================================
id: 4 msg: Map(5 -> ListBuffer(Set(6, 7, 8, 0, 1), Set(6, 7, 8, 0, 3), Set(6, 7, 8, 0, 9), Set(6, 7, 10, 11, 12), Set(6, 7, 10, 12, 11))) attr: (Map(5 -> ListBuffer(Set(5, 6, 7, 8, 0), Set(5, 6, 7, 10, 11), Set(5, 6, 7, 10, 12))),ListBuffer(),6)
id: 11 msg: Map(10 -> ListBuffer(Set(7, 8, 0, 1, 2), Set(7, 8, 0, 3, 4)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0), Set(10, 7, 8, 0, 1), Set(10, 7, 8, 0, 3), Set(10, 7, 8, 0, 9))) attr: (Map(10 -> ListBuffer(Set(10, 7, 8, 0, 1), Set(10, 7, 8, 0, 3), Set(10, 7, 8, 0, 9)), 12 -> ListBuffer(Set(12, 10, 7, 8, 0))),ListBuffer(Set(10, 11), Set(12, 11), Set(10, 12, 11), Set(12, 10, 11)),6)
id: 0 msg: Map(1 -> ListBuffer(Set(2, 3, 4, 5, 6)), 3 -> ListBuffer(Set(4, 5, 6, 7, 8), Set(4, 5, 6, 7, 10)), 9 -> ListBuffer(Set(0, 1, 2, 3, 4), Set(0, 3, 4, 5, 6))) attr: (Map(1 -> ListBuffer(Set(1, 2, 3, 4, 5)), 3 -> ListBuffer(Set(3, 4, 5, 6, 7))),ListBuffer(Set(9, 0), Set(3, 0), Set(1, 2, 3, 0)),6)
id: 1 msg: Map(2 -> ListBuffer(Set(3, 4, 5, 6, 7))) attr: (Map(2 -> ListBuffer(Set(2, 3, 4, 5, 6))),ListBuffer(Set(2, 3, 0, 1)),6)
id: 6 msg: Map(7 -> ListBuffer(Set(8, 0, 1, 2, 3), Set(8, 0, 3, 4, 5))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1, 2), Set(7, 8, 0, 3, 4))),ListBuffer(),6)
id: 3 msg: Map(4 -> ListBuffer(Set(5, 6, 7, 8, 0), Set(5, 6, 7, 10, 11), Set(5, 6, 7, 10, 12)), 0 -> ListBuffer(Set(1, 2, 3, 4, 5), Set(3, 4, 5, 6, 7))) attr: (Map(4 -> ListBuffer(Set(4, 5, 6, 7, 8), Set(4, 5, 6, 7, 10))),ListBuffer(Set(0, 3), Set(0, 1, 2, 3)),6)
id: 12 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1), Set(10, 7, 8, 0, 3), Set(10, 7, 8, 0, 9), Set(12, 10, 7, 8, 0)), 10 -> ListBuffer(Set(7, 8, 0, 1, 2), Set(7, 8, 0, 3, 4))) attr: (Map(11 -> ListBuffer(Set(11, 10, 7, 8, 0)), 10 -> ListBuffer(Set(10, 7, 8, 0, 1), Set(10, 7, 8, 0, 3), Set(10, 7, 8, 0, 9))),ListBuffer(Set(11, 12), Set(10, 12), Set(11, 10, 12), Set(10, 11, 12)),6)
id: 9 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5), Set(3, 4, 5, 6, 7))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4), Set(0, 3, 4, 5, 6))),ListBuffer(Set(0, 9)),6)
id: 7 msg: Map(8 -> ListBuffer(Set(0, 1, 2, 3, 4), Set(0, 3, 4, 5, 6)), 10 -> ListBuffer(Set(7, 8, 0, 1, 2), Set(7, 8, 0, 3, 4))) attr: (Map(8 -> ListBuffer(Set(8, 0, 1, 2, 3), Set(8, 0, 3, 4, 5))),ListBuffer(Set(10, 7)),6)
id: 8 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5), Set(3, 4, 5, 6, 7))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4), Set(0, 3, 4, 5, 6))),ListBuffer(),6)
id: 10 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1), Set(10, 7, 8, 0, 3), Set(10, 7, 8, 0, 9), Set(12, 10, 7, 8, 0)), 7 -> ListBuffer(Set(8, 0, 1, 2, 3), Set(8, 0, 3, 4, 5)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0), Set(10, 7, 8, 0, 1), Set(10, 7, 8, 0, 3), Set(10, 7, 8, 0, 9))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1, 2), Set(7, 8, 0, 3, 4))),ListBuffer(Set(11, 10), Set(7, 10), Set(12, 10), Set(11, 12, 10), Set(12, 11, 10)),6)
id: 5 msg: Map(6 -> ListBuffer(Set(7, 8, 0, 1, 2), Set(7, 8, 0, 3, 4))) attr: (Map(6 -> ListBuffer(Set(6, 7, 8, 0, 1), Set(6, 7, 8, 0, 3), Set(6, 7, 8, 0, 9), Set(6, 7, 10, 11, 12), Set(6, 7, 10, 12, 11))),ListBuffer(),6)
id: 2 msg: Map(3 -> ListBuffer(Set(4, 5, 6, 7, 8), Set(4, 5, 6, 7, 10))) attr: (Map(3 -> ListBuffer(Set(3, 4, 5, 6, 7))),ListBuffer(Set(3, 0, 1, 2)),6)
================================
                7                
================================
id: 4 msg: Map(5 -> ListBuffer(Set(6, 7, 8, 0, 1, 2), Set(6, 7, 8, 0, 3, 4))) attr: (Map(5 -> ListBuffer(Set(5, 6, 7, 8, 0, 1), Set(5, 6, 7, 8, 0, 3), Set(5, 6, 7, 8, 0, 9), Set(5, 6, 7, 10, 11, 12), Set(5, 6, 7, 10, 12, 11))),ListBuffer(),7)
id: 11 msg: Map(10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3), Set(7, 8, 0, 3, 4, 5)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1), Set(11, 10, 7, 8, 0, 3), Set(11, 10, 7, 8, 0, 9), Set(10, 7, 8, 0, 1, 2), Set(10, 7, 8, 0, 3, 4))) attr: (Map(10 -> ListBuffer(Set(10, 7, 8, 0, 1, 2), Set(10, 7, 8, 0, 3, 4)), 12 -> ListBuffer(Set(12, 10, 7, 8, 0, 1), Set(12, 10, 7, 8, 0, 3), Set(12, 10, 7, 8, 0, 9))),ListBuffer(Set(10, 11), Set(12, 11), Set(10, 12, 11), Set(12, 10, 11)),7)
id: 0 msg: Map(1 -> ListBuffer(Set(2, 3, 4, 5, 6, 7)), 3 -> ListBuffer(Set(4, 5, 6, 7, 8, 0), Set(4, 5, 6, 7, 10, 11), Set(4, 5, 6, 7, 10, 12)), 9 -> ListBuffer(Set(0, 1, 2, 3, 4, 5), Set(0, 3, 4, 5, 6, 7))) attr: (Map(1 -> ListBuffer(Set(1, 2, 3, 4, 5, 6)), 3 -> ListBuffer(Set(3, 4, 5, 6, 7, 8), Set(3, 4, 5, 6, 7, 10))),ListBuffer(Set(9, 0), Set(3, 0), Set(1, 2, 3, 0)),7)
id: 1 msg: Map(2 -> ListBuffer(Set(3, 4, 5, 6, 7, 8), Set(3, 4, 5, 6, 7, 10))) attr: (Map(2 -> ListBuffer(Set(2, 3, 4, 5, 6, 7))),ListBuffer(Set(2, 3, 0, 1)),7)
id: 6 msg: Map(7 -> ListBuffer(Set(8, 0, 1, 2, 3, 4), Set(8, 0, 3, 4, 5, 6))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1, 2, 3), Set(7, 8, 0, 3, 4, 5))),ListBuffer(),7)
id: 3 msg: Map(4 -> ListBuffer(Set(5, 6, 7, 8, 0, 1), Set(5, 6, 7, 8, 0, 3), Set(5, 6, 7, 8, 0, 9), Set(5, 6, 7, 10, 11, 12), Set(5, 6, 7, 10, 12, 11)), 0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6), Set(3, 4, 5, 6, 7, 8), Set(3, 4, 5, 6, 7, 10))) attr: (Map(4 -> ListBuffer(Set(4, 5, 6, 7, 8, 0), Set(4, 5, 6, 7, 10, 11), Set(4, 5, 6, 7, 10, 12))),ListBuffer(Set(0, 3), Set(0, 1, 2, 3)),7)
id: 12 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1, 2), Set(10, 7, 8, 0, 3, 4), Set(12, 10, 7, 8, 0, 1), Set(12, 10, 7, 8, 0, 3), Set(12, 10, 7, 8, 0, 9)), 10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3), Set(7, 8, 0, 3, 4, 5))) attr: (Map(11 -> ListBuffer(Set(11, 10, 7, 8, 0, 1), Set(11, 10, 7, 8, 0, 3), Set(11, 10, 7, 8, 0, 9)), 10 -> ListBuffer(Set(10, 7, 8, 0, 1, 2), Set(10, 7, 8, 0, 3, 4))),ListBuffer(Set(11, 12), Set(10, 12), Set(11, 10, 12), Set(10, 11, 12)),7)
id: 9 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6), Set(3, 4, 5, 6, 7, 8), Set(3, 4, 5, 6, 7, 10))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4, 5), Set(0, 3, 4, 5, 6, 7))),ListBuffer(Set(0, 9)),7)
id: 7 msg: Map(8 -> ListBuffer(Set(0, 1, 2, 3, 4, 5), Set(0, 3, 4, 5, 6, 7)), 10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3), Set(7, 8, 0, 3, 4, 5))) attr: (Map(8 -> ListBuffer(Set(8, 0, 1, 2, 3, 4), Set(8, 0, 3, 4, 5, 6))),ListBuffer(Set(10, 7)),7)
id: 8 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6), Set(3, 4, 5, 6, 7, 8), Set(3, 4, 5, 6, 7, 10))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4, 5), Set(0, 3, 4, 5, 6, 7))),ListBuffer(),7)
id: 10 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1, 2), Set(10, 7, 8, 0, 3, 4), Set(12, 10, 7, 8, 0, 1), Set(12, 10, 7, 8, 0, 3), Set(12, 10, 7, 8, 0, 9)), 7 -> ListBuffer(Set(8, 0, 1, 2, 3, 4), Set(8, 0, 3, 4, 5, 6)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1), Set(11, 10, 7, 8, 0, 3), Set(11, 10, 7, 8, 0, 9), Set(10, 7, 8, 0, 1, 2), Set(10, 7, 8, 0, 3, 4))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1, 2, 3), Set(7, 8, 0, 3, 4, 5))),ListBuffer(Set(11, 10), Set(7, 10), Set(12, 10), Set(11, 12, 10), Set(12, 11, 10)),7)
id: 5 msg: Map(6 -> ListBuffer(Set(7, 8, 0, 1, 2, 3), Set(7, 8, 0, 3, 4, 5))) attr: (Map(6 -> ListBuffer(Set(6, 7, 8, 0, 1, 2), Set(6, 7, 8, 0, 3, 4))),ListBuffer(),7)
id: 2 msg: Map(3 -> ListBuffer(Set(4, 5, 6, 7, 8, 0), Set(4, 5, 6, 7, 10, 11), Set(4, 5, 6, 7, 10, 12))) attr: (Map(3 -> ListBuffer(Set(3, 4, 5, 6, 7, 8), Set(3, 4, 5, 6, 7, 10))),ListBuffer(Set(3, 0, 1, 2)),7)
================================
                8                
================================
id: 4 msg: Map(5 -> ListBuffer(Set(6, 7, 8, 0, 1, 2, 3))) attr: (Map(5 -> ListBuffer(Set(5, 6, 7, 8, 0, 1, 2))),ListBuffer(Set(5, 6, 7, 8, 0, 3, 4)),8)
id: 11 msg: Map(10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4), Set(7, 8, 0, 3, 4, 5, 6)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2), Set(11, 10, 7, 8, 0, 3, 4), Set(10, 7, 8, 0, 1, 2, 3), Set(10, 7, 8, 0, 3, 4, 5))) attr: (Map(10 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3), Set(10, 7, 8, 0, 3, 4, 5)), 12 -> ListBuffer(Set(12, 10, 7, 8, 0, 1, 2), Set(12, 10, 7, 8, 0, 3, 4))),ListBuffer(Set(10, 11), Set(12, 11), Set(10, 12, 11), Set(12, 10, 11)),8)
id: 0 msg: Map(1 -> ListBuffer(Set(2, 3, 4, 5, 6, 7, 8), Set(2, 3, 4, 5, 6, 7, 10)), 3 -> ListBuffer(Set(4, 5, 6, 7, 8, 0, 1), Set(4, 5, 6, 7, 8, 0, 9), Set(4, 5, 6, 7, 10, 11, 12), Set(4, 5, 6, 7, 10, 12, 11)), 9 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6), Set(0, 3, 4, 5, 6, 7, 8), Set(0, 3, 4, 5, 6, 7, 10))) attr: (Map(1 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7)), 3 -> ListBuffer(Set(3, 4, 5, 6, 7, 10, 11), Set(3, 4, 5, 6, 7, 10, 12))),ListBuffer(Set(9, 0), Set(3, 0), Set(1, 2, 3, 0), Set(3, 4, 5, 6, 7, 8, 0)),8)
id: 1 msg: Map(2 -> ListBuffer(Set(3, 4, 5, 6, 7, 8, 0), Set(3, 4, 5, 6, 7, 10, 11), Set(3, 4, 5, 6, 7, 10, 12))) attr: (Map(2 -> ListBuffer(Set(2, 3, 4, 5, 6, 7, 8), Set(2, 3, 4, 5, 6, 7, 10))),ListBuffer(Set(2, 3, 0, 1)),8)
id: 6 msg: Map(7 -> ListBuffer(Set(8, 0, 1, 2, 3, 4, 5))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4))),ListBuffer(Set(7, 8, 0, 3, 4, 5, 6)),8)
id: 3 msg: Map(4 -> ListBuffer(Set(5, 6, 7, 8, 0, 1, 2)), 0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7), Set(3, 4, 5, 6, 7, 10, 11), Set(3, 4, 5, 6, 7, 10, 12))) attr: (Map(4 -> ListBuffer(Set(4, 5, 6, 7, 8, 0, 1), Set(4, 5, 6, 7, 8, 0, 9), Set(4, 5, 6, 7, 10, 11, 12), Set(4, 5, 6, 7, 10, 12, 11))),ListBuffer(Set(0, 3), Set(0, 1, 2, 3), Set(4, 5, 6, 7, 8, 0, 3)),8)
id: 12 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3), Set(10, 7, 8, 0, 3, 4, 5), Set(12, 10, 7, 8, 0, 1, 2), Set(12, 10, 7, 8, 0, 3, 4)), 10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4), Set(7, 8, 0, 3, 4, 5, 6))) attr: (Map(11 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2), Set(11, 10, 7, 8, 0, 3, 4)), 10 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3), Set(10, 7, 8, 0, 3, 4, 5))),ListBuffer(Set(11, 12), Set(10, 12), Set(11, 10, 12), Set(10, 11, 12)),8)
id: 9 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7), Set(3, 4, 5, 6, 7, 10, 11), Set(3, 4, 5, 6, 7, 10, 12))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6), Set(0, 3, 4, 5, 6, 7, 8), Set(0, 3, 4, 5, 6, 7, 10))),ListBuffer(Set(0, 9)),8)
id: 7 msg: Map(8 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6), Set(0, 3, 4, 5, 6, 7, 10)), 10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4), Set(7, 8, 0, 3, 4, 5, 6))) attr: (Map(8 -> ListBuffer(Set(8, 0, 1, 2, 3, 4, 5))),ListBuffer(Set(10, 7), Set(8, 0, 3, 4, 5, 6, 7)),8)
id: 8 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7), Set(3, 4, 5, 6, 7, 10, 11), Set(3, 4, 5, 6, 7, 10, 12))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6), Set(0, 3, 4, 5, 6, 7, 10))),ListBuffer(Set(0, 3, 4, 5, 6, 7, 8)),8)
id: 10 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3), Set(10, 7, 8, 0, 3, 4, 5), Set(12, 10, 7, 8, 0, 1, 2), Set(12, 10, 7, 8, 0, 3, 4)), 7 -> ListBuffer(Set(8, 0, 1, 2, 3, 4, 5)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2), Set(11, 10, 7, 8, 0, 3, 4), Set(10, 7, 8, 0, 1, 2, 3), Set(10, 7, 8, 0, 3, 4, 5))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4), Set(7, 8, 0, 3, 4, 5, 6))),ListBuffer(Set(11, 10), Set(7, 10), Set(12, 10), Set(11, 12, 10), Set(12, 11, 10)),8)
id: 5 msg: Map(6 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4))) attr: (Map(6 -> ListBuffer(Set(6, 7, 8, 0, 1, 2, 3))),ListBuffer(Set(6, 7, 8, 0, 3, 4, 5)),8)
id: 2 msg: Map(3 -> ListBuffer(Set(4, 5, 6, 7, 8, 0, 1), Set(4, 5, 6, 7, 8, 0, 9), Set(4, 5, 6, 7, 10, 11, 12), Set(4, 5, 6, 7, 10, 12, 11))) attr: (Map(3 -> ListBuffer(Set(3, 4, 5, 6, 7, 8, 0), Set(3, 4, 5, 6, 7, 10, 11), Set(3, 4, 5, 6, 7, 10, 12))),ListBuffer(Set(3, 0, 1, 2)),8)
================================
                9                
================================
id: 4 msg: Map(5 -> ListBuffer(Set(6, 7, 8, 0, 1, 2, 3, 4))) attr: (Map(5 -> ListBuffer(Set(5, 6, 7, 8, 0, 1, 2, 3))),ListBuffer(Set(5, 6, 7, 8, 0, 3, 4)),9)
id: 11 msg: Map(10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4, 5)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3), Set(11, 10, 7, 8, 0, 3, 4, 5), Set(10, 7, 8, 0, 1, 2, 3, 4), Set(10, 7, 8, 0, 3, 4, 5, 6))) attr: (Map(10 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4), Set(10, 7, 8, 0, 3, 4, 5, 6)), 12 -> ListBuffer(Set(12, 10, 7, 8, 0, 1, 2, 3), Set(12, 10, 7, 8, 0, 3, 4, 5))),ListBuffer(Set(10, 11), Set(12, 11), Set(10, 12, 11), Set(12, 10, 11)),9)
id: 0 msg: Map(1 -> ListBuffer(Set(2, 3, 4, 5, 6, 7, 8, 0), Set(2, 3, 4, 5, 6, 7, 10, 11), Set(2, 3, 4, 5, 6, 7, 10, 12)), 3 -> ListBuffer(Set(4, 5, 6, 7, 8, 0, 1, 2)), 9 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7), Set(0, 3, 4, 5, 6, 7, 10, 11), Set(0, 3, 4, 5, 6, 7, 10, 12))) attr: (Map(1 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 8), Set(1, 2, 3, 4, 5, 6, 7, 10)), 3 -> ListBuffer(Set(3, 4, 5, 6, 7, 10, 11, 12), Set(3, 4, 5, 6, 7, 10, 12, 11))),ListBuffer(Set(9, 0), Set(3, 0), Set(1, 2, 3, 0), Set(3, 4, 5, 6, 7, 8, 0)),9)
id: 1 msg: Map(2 -> ListBuffer(Set(3, 4, 5, 6, 7, 8, 0, 1), Set(3, 4, 5, 6, 7, 8, 0, 9), Set(3, 4, 5, 6, 7, 10, 11, 12), Set(3, 4, 5, 6, 7, 10, 12, 11))) attr: (Map(2 -> ListBuffer(Set(2, 3, 4, 5, 6, 7, 8, 0), Set(2, 3, 4, 5, 6, 7, 10, 11), Set(2, 3, 4, 5, 6, 7, 10, 12))),ListBuffer(Set(2, 3, 0, 1)),9)
id: 6 msg: Map(7 -> ListBuffer(Set(8, 0, 1, 2, 3, 4, 5, 6))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4, 5))),ListBuffer(Set(7, 8, 0, 3, 4, 5, 6)),9)
id: 3 msg: Map(4 -> ListBuffer(Set(5, 6, 7, 8, 0, 1, 2, 3)), 0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 8), Set(1, 2, 3, 4, 5, 6, 7, 10), Set(3, 4, 5, 6, 7, 10, 11, 12), Set(3, 4, 5, 6, 7, 10, 12, 11))) attr: (Map(4 -> ListBuffer(Set(4, 5, 6, 7, 8, 0, 1, 2))),ListBuffer(Set(0, 3), Set(0, 1, 2, 3), Set(4, 5, 6, 7, 8, 0, 3)),9)
id: 12 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4), Set(10, 7, 8, 0, 3, 4, 5, 6), Set(12, 10, 7, 8, 0, 1, 2, 3), Set(12, 10, 7, 8, 0, 3, 4, 5)), 10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4, 5))) attr: (Map(11 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3), Set(11, 10, 7, 8, 0, 3, 4, 5)), 10 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4), Set(10, 7, 8, 0, 3, 4, 5, 6))),ListBuffer(Set(11, 12), Set(10, 12), Set(11, 10, 12), Set(10, 11, 12)),9)
id: 9 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 8), Set(1, 2, 3, 4, 5, 6, 7, 10), Set(3, 4, 5, 6, 7, 10, 11, 12), Set(3, 4, 5, 6, 7, 10, 12, 11))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7), Set(0, 3, 4, 5, 6, 7, 10, 11), Set(0, 3, 4, 5, 6, 7, 10, 12))),ListBuffer(Set(0, 9)),9)
id: 7 msg: Map(8 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7), Set(0, 3, 4, 5, 6, 7, 10, 11), Set(0, 3, 4, 5, 6, 7, 10, 12)), 10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4, 5))) attr: (Map(8 -> ListBuffer(Set(8, 0, 1, 2, 3, 4, 5, 6))),ListBuffer(Set(10, 7), Set(8, 0, 3, 4, 5, 6, 7)),9)
id: 8 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 8), Set(1, 2, 3, 4, 5, 6, 7, 10), Set(3, 4, 5, 6, 7, 10, 11, 12), Set(3, 4, 5, 6, 7, 10, 12, 11))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7), Set(0, 3, 4, 5, 6, 7, 10, 11), Set(0, 3, 4, 5, 6, 7, 10, 12))),ListBuffer(Set(0, 3, 4, 5, 6, 7, 8)),9)
id: 10 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4), Set(10, 7, 8, 0, 3, 4, 5, 6), Set(12, 10, 7, 8, 0, 1, 2, 3), Set(12, 10, 7, 8, 0, 3, 4, 5)), 7 -> ListBuffer(Set(8, 0, 1, 2, 3, 4, 5, 6)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3), Set(11, 10, 7, 8, 0, 3, 4, 5), Set(10, 7, 8, 0, 1, 2, 3, 4), Set(10, 7, 8, 0, 3, 4, 5, 6))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4, 5))),ListBuffer(Set(11, 10), Set(7, 10), Set(12, 10), Set(11, 12, 10), Set(12, 11, 10)),9)
id: 5 msg: Map(6 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4, 5))) attr: (Map(6 -> ListBuffer(Set(6, 7, 8, 0, 1, 2, 3, 4))),ListBuffer(Set(6, 7, 8, 0, 3, 4, 5)),9)
id: 2 msg: Map(3 -> ListBuffer(Set(4, 5, 6, 7, 8, 0, 1, 2))) attr: (Map(3 -> ListBuffer(Set(3, 4, 5, 6, 7, 8, 0, 1), Set(3, 4, 5, 6, 7, 8, 0, 9), Set(3, 4, 5, 6, 7, 10, 11, 12), Set(3, 4, 5, 6, 7, 10, 12, 11))),ListBuffer(Set(3, 0, 1, 2)),9)
id: 11 msg: Map(10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4, 5, 6)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3, 4), Set(11, 10, 7, 8, 0, 3, 4, 5, 6), Set(10, 7, 8, 0, 1, 2, 3, 4, 5))) attr: (Map(10 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4, 5)), 12 -> ListBuffer(Set(12, 10, 7, 8, 0, 1, 2, 3, 4), Set(12, 10, 7, 8, 0, 3, 4, 5, 6))),ListBuffer(Set(10, 11), Set(12, 11), Set(10, 12, 11), Set(12, 10, 11)),10)
id: 0 msg: Map(1 -> ListBuffer(Set(2, 3, 4, 5, 6, 7, 8, 0, 9), Set(2, 3, 4, 5, 6, 7, 10, 11, 12), Set(2, 3, 4, 5, 6, 7, 10, 12, 11)), 9 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7, 8), Set(0, 1, 2, 3, 4, 5, 6, 7, 10), Set(0, 3, 4, 5, 6, 7, 10, 11, 12), Set(0, 3, 4, 5, 6, 7, 10, 12, 11))) attr: (Map(1 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 10, 11), Set(1, 2, 3, 4, 5, 6, 7, 10, 12))),ListBuffer(Set(9, 0), Set(3, 0), Set(1, 2, 3, 0), Set(3, 4, 5, 6, 7, 8, 0), Set(1, 2, 3, 4, 5, 6, 7, 8, 0)),10)
id: 3 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 10, 11), Set(1, 2, 3, 4, 5, 6, 7, 10, 12))) attr: (Map(),ListBuffer(Set(0, 3), Set(0, 1, 2, 3), Set(4, 5, 6, 7, 8, 0, 3), Set(4, 5, 6, 7, 8, 0, 1, 2, 3)),10)
id: 12 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4, 5), Set(12, 10, 7, 8, 0, 1, 2, 3, 4), Set(12, 10, 7, 8, 0, 3, 4, 5, 6)), 10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4, 5, 6))) attr: (Map(11 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3, 4), Set(11, 10, 7, 8, 0, 3, 4, 5, 6)), 10 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4, 5))),ListBuffer(Set(11, 12), Set(10, 12), Set(11, 10, 12), Set(10, 11, 12)),10)
id: 9 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 10, 11), Set(1, 2, 3, 4, 5, 6, 7, 10, 12))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7, 8), Set(0, 1, 2, 3, 4, 5, 6, 7, 10), Set(0, 3, 4, 5, 6, 7, 10, 11, 12), Set(0, 3, 4, 5, 6, 7, 10, 12, 11))),ListBuffer(Set(0, 9)),10)
id: 7 msg: Map(8 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7, 10), Set(0, 3, 4, 5, 6, 7, 10, 11, 12), Set(0, 3, 4, 5, 6, 7, 10, 12, 11)), 10 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4, 5, 6))) attr: (Map(),ListBuffer(Set(10, 7), Set(8, 0, 3, 4, 5, 6, 7), Set(8, 0, 1, 2, 3, 4, 5, 6, 7)),10)
id: 8 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 10, 11), Set(1, 2, 3, 4, 5, 6, 7, 10, 12))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7, 10), Set(0, 3, 4, 5, 6, 7, 10, 11, 12), Set(0, 3, 4, 5, 6, 7, 10, 12, 11))),ListBuffer(Set(0, 3, 4, 5, 6, 7, 8), Set(0, 1, 2, 3, 4, 5, 6, 7, 8)),10)
id: 10 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4, 5), Set(12, 10, 7, 8, 0, 1, 2, 3, 4), Set(12, 10, 7, 8, 0, 3, 4, 5, 6)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3, 4), Set(11, 10, 7, 8, 0, 3, 4, 5, 6), Set(10, 7, 8, 0, 1, 2, 3, 4, 5))) attr: (Map(7 -> ListBuffer(Set(7, 8, 0, 1, 2, 3, 4, 5, 6))),ListBuffer(Set(11, 10), Set(7, 10), Set(12, 10), Set(11, 12, 10), Set(12, 11, 10)),10)
id: 11 msg: Map(12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3, 4, 5), Set(10, 7, 8, 0, 1, 2, 3, 4, 5, 6))) attr: (Map(10 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4, 5, 6)), 12 -> ListBuffer(Set(12, 10, 7, 8, 0, 1, 2, 3, 4, 5))),ListBuffer(Set(10, 11), Set(12, 11), Set(10, 12, 11), Set(12, 10, 11)),11)
id: 0 msg: Map(9 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 11), Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 12))) attr: (Map(1 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 10, 11, 12), Set(1, 2, 3, 4, 5, 6, 7, 10, 12, 11))),ListBuffer(Set(9, 0), Set(3, 0), Set(1, 2, 3, 0), Set(3, 4, 5, 6, 7, 8, 0), Set(1, 2, 3, 4, 5, 6, 7, 8, 0)),11)
id: 3 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 10, 11, 12), Set(1, 2, 3, 4, 5, 6, 7, 10, 12, 11))) attr: (Map(),ListBuffer(Set(0, 3), Set(0, 1, 2, 3), Set(4, 5, 6, 7, 8, 0, 3), Set(4, 5, 6, 7, 8, 0, 1, 2, 3)),11)
id: 12 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4, 5, 6), Set(12, 10, 7, 8, 0, 1, 2, 3, 4, 5))) attr: (Map(11 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3, 4, 5)), 10 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4, 5, 6))),ListBuffer(Set(11, 12), Set(10, 12), Set(11, 10, 12), Set(10, 11, 12)),11)
id: 9 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 10, 11, 12), Set(1, 2, 3, 4, 5, 6, 7, 10, 12, 11))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 11), Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 12))),ListBuffer(Set(0, 9)),11)
id: 7 msg: Map(8 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 11), Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 12))) attr: (Map(),ListBuffer(Set(10, 7), Set(8, 0, 3, 4, 5, 6, 7), Set(8, 0, 1, 2, 3, 4, 5, 6, 7)),11)
id: 8 msg: Map(0 -> ListBuffer(Set(1, 2, 3, 4, 5, 6, 7, 10, 11, 12), Set(1, 2, 3, 4, 5, 6, 7, 10, 12, 11))) attr: (Map(0 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 11), Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 12))),ListBuffer(Set(0, 3, 4, 5, 6, 7, 8), Set(0, 1, 2, 3, 4, 5, 6, 7, 8)),11)
id: 10 msg: Map(11 -> ListBuffer(Set(10, 7, 8, 0, 1, 2, 3, 4, 5, 6), Set(12, 10, 7, 8, 0, 1, 2, 3, 4, 5)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3, 4, 5), Set(10, 7, 8, 0, 1, 2, 3, 4, 5, 6))) attr: (Map(),ListBuffer(Set(11, 10), Set(7, 10), Set(12, 10), Set(11, 12, 10), Set(12, 11, 10)),11)
id: 11 msg: Map(12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3, 4, 5, 6))) attr: (Map(12 -> ListBuffer(Set(12, 10, 7, 8, 0, 1, 2, 3, 4, 5, 6))),ListBuffer(Set(10, 11), Set(12, 11), Set(10, 12, 11), Set(12, 10, 11)),12)
id: 0 msg: Map(9 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12), Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 12, 11))) attr: (Map(),ListBuffer(Set(9, 0), Set(3, 0), Set(1, 2, 3, 0), Set(3, 4, 5, 6, 7, 8, 0), Set(1, 2, 3, 4, 5, 6, 7, 8, 0)),12)
id: 12 msg: Map(11 -> ListBuffer(Set(12, 10, 7, 8, 0, 1, 2, 3, 4, 5, 6))) attr: (Map(11 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3, 4, 5, 6))),ListBuffer(Set(11, 12), Set(10, 12), Set(11, 10, 12), Set(10, 11, 12)),12)
id: 7 msg: Map(8 -> ListBuffer(Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12), Set(0, 1, 2, 3, 4, 5, 6, 7, 10, 12, 11))) attr: (Map(),ListBuffer(Set(10, 7), Set(8, 0, 3, 4, 5, 6, 7), Set(8, 0, 1, 2, 3, 4, 5, 6, 7)),12)
id: 10 msg: Map(11 -> ListBuffer(Set(12, 10, 7, 8, 0, 1, 2, 3, 4, 5, 6)), 12 -> ListBuffer(Set(11, 10, 7, 8, 0, 1, 2, 3, 4, 5, 6))) attr: (Map(),ListBuffer(Set(11, 10), Set(7, 10), Set(12, 10), Set(11, 12, 10), Set(12, 11, 10)),12)
================================
                vertices                
================================
(4,Set(Set(5, 6, 7, 8, 0, 3, 4), Set(5, 6, 7, 8, 0, 1, 2, 3, 4)))##;
(11,Set(Set(10, 11), Set(12, 11), Set(10, 12, 11)))##;
(0,Set(Set(1, 2, 3, 4, 5, 6, 7, 8, 0), Set(3, 4, 5, 6, 7, 8, 0), Set(9, 0), Set(1, 2, 3, 0), Set(3, 0)))##;
(1,Set(Set(2, 3, 0, 1), Set(2, 3, 4, 5, 6, 7, 8, 0, 1)))##;
(6,Set(Set(7, 8, 0, 3, 4, 5, 6), Set(7, 8, 0, 1, 2, 3, 4, 5, 6)))##;
(3,Set(Set(0, 3), Set(0, 1, 2, 3), Set(4, 5, 6, 7, 8, 0, 3), Set(4, 5, 6, 7, 8, 0, 1, 2, 3)))##;
(12,Set(Set(11, 12), Set(10, 12), Set(11, 10, 12)))##;
(9,Set(Set(0, 9)))##;
(7,Set(Set(10, 7), Set(8, 0, 3, 4, 5, 6, 7), Set(8, 0, 1, 2, 3, 4, 5, 6, 7)))##;
(8,Set(Set(0, 3, 4, 5, 6, 7, 8), Set(0, 1, 2, 3, 4, 5, 6, 7, 8)))##;
(10,Set(Set(11, 10), Set(7, 10), Set(12, 10), Set(11, 12, 10)))##;
(5,Set(Set(6, 7, 8, 0, 3, 4, 5), Set(6, 7, 8, 0, 1, 2, 3, 4, 5)))##;
(2,Set(Set(3, 0, 1, 2), Set(3, 4, 5, 6, 7, 8, 0, 1, 2)))

Process finished with exit code 0

 

Graph Algorithms: Practical Examples in Apache Spark and Neo4j By 作者: Mark Needham – Amy E. Hodler ISBN-10 书号: 1492047686 ISBN-13 书号: 9781492047681 Edition 版本: 1 出版日期: 2019-01-04 pages 页数: (217) Discover how graph algorithms can help you leverage the relationships within your data to develop more intelligent solutions and enhance your machine learning models. You’ll learn how graph analytics are uniquely suited to unfold complex structures and reveal difficult-to-find patterns lurking in your data. Whether you are trying to build dynamic network models or forecast real-world behavior, this book illustrates how graph algorithms deliver value—from finding vulnerabilities and bottlenecks to detecting communities and improving machine learning predictions. This practical book walks you through hands-on examples of how to use graph algorithms in Apache Spark and Neo4j—two of the most common choices for graph analytics. Also included: sample code and tips for over 20 practical graph algorithms that cover optimal pathfinding, importance through centrality, and community detection. Learn how graph analytics vary from conventional statistical analysis Understand how classic graph algorithms work, and how they are applied Get guidance on which algorithms to use for different types of questions Explore algorithm examples with working code and sample datasets from Spark and Neo4j See how connected feature extraction can increase machine learning accuracy and precision Walk through creating an ML workflow for link prediction combining Neo4j and Spark
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值