我需要从spark数据帧创建neo4j图,然后将它们存储在Neo4j中。 在搜索时,我找到了项目Cypher for apache Spark来解决我的问题,但是它有a problem in build,因此对我不起作用。 我问是否还有另一种选择?
答案 0 :(得分:1)
用于Apache Spark / CAPS的Cypher(在撰写本文时)是Neo4j正在开发的更大解决方案的组件。 You can find out more about that here,但简短的答案是您可能要考虑签出更大的解决方案,而不是单独使用CAPS。
您可以选择使用neo4j-spark-connector,它的功能略有不同,但是非常适合从spark-> neo4j中移动数据。您也可以考虑与neo4j user slack建立联系,在那里有人可以回答有关一般方法的问题。
答案 1 :(得分:1)
我使用https://github.com/neo4j-contrib/neo4j-spark-connector来创建和使用Neo4J图形。
我重写mergeEdgeList方法来处理我的Cypher查询,以将我的所有图形都写入Neo4j。
棘手,但我成功了。
编辑: 首先,我将Intellij IDEA与Scala插件和MVN一起使用来构建。
我将此添加到我的pom.xml
<dependency>
<groupId>neo4j-contrib</groupId>
<artifactId>neo4j-spark-connector</artifactId>
<version>2.1.0-M4</version>
<scope>compile</scope>
</dependency>
然后,尝试使用具有此列/模式的数据框:
NodeSrc |所有nodeSrc属性[...] |关系|所有关系属性[...] | NodeDest |所有nodeDst attr [...] |
例如Twitter用户并转推。 :
Neo4jDataFrame.mergeEdgeList(
MYDATAFRAME, // Dataframe
("User", Seq("UserName")),
("Like", Seq("TimeStamp")),
("Movie", Seq("MovieName")))
在此代码示例中,MYDATAFRAME是具有特定架构的数据框。