首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将星火流RDDs推送至Neo4j -Scala

将星火流RDDs推送至Neo4j -Scala
EN

Stack Overflow用户
提问于 2015-06-25 20:13:47
回答 2查看 678关注 0票数 4

我需要建立从Neo4j流到database.The图形的连接,database.The RDD是类型的((is,I),(am,Hello)(sam,database.The).)。我需要在Neo4j中的每对单词之间建立一个边。

在火花流文档中我找到了

代码语言:javascript
复制
dstream.foreachRDD { rdd =>
  rdd.foreachPartition { partitionOfRecords =>
    // ConnectionPool is a static, lazily initialized pool of connections
    val connection = ConnectionPool.getConnection()
    partitionOfRecords.foreach(record => connection.send(record))
    ConnectionPool.returnConnection(connection)  // return to the pool for future reuse
  }
}

to the push to the data to an external database.

我是用Scala做的。我不太明白该怎么做?我找到了AnormCypher和Neo4jScala包装器。我能用这些来完成工作吗?如果是的话,我怎样才能做到呢?如果没有,还有其他更好的选择吗?

谢谢大家..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-25 20:50:51

我和AnormCypher做了个实验

如下所示:

代码语言:javascript
复制
implicit val connection = Neo4jREST.setServer("localhost", 7474, "/db/data/")
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(FILE, 4).cache()
val count = logData
  .flatMap( _.split(" "))
  .map( w =>
    Cypher("CREATE(:Word {text:{text}})")
      .on( "text" -> w ).execute()
   ).filter( _ ).count()

Neo4j 2.2.x具有很好的并发写入性能,可以从Spark中使用。因此,您必须向Neo4j写入的并发线程越多,越好。如果您可以对每个请求分批处理100到1000次语句,那么就更好了。

票数 2
EN

Stack Overflow用户

发布于 2015-06-25 20:43:55

看看MazeRunner (http://www.kennybastani.com/2014/11/using-apache-spark-and-neo4j-for-big.html),因为它会给您一些想法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31059930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档