如何将Spark数据帧写入Neo4j数据库

时间:2016-10-26 12:39:01

标签: apache-spark neo4j spark-dataframe

我想建立这个工作流程:

  • 使用Spark预处理某些数据,以数据框结束
  • 将此类数据帧作为一组节点写入Neo4j

我的想法非常基本:将df中的每一行写为节点,其中每列值表示节点属性的值

我见过很多文章,包括neo4j-spark-connectorIntroducing the Neo4j 3.0 Apache Spark Connector,但他们都专注于从Neo4j数据库导入Spark数据...到目前为止,我无法找到一个明确的例子将Spark数据帧写入Neo4j数据库。

非常感谢任何指向文档或非常基本示例的指针。

3 个答案:

答案 0 :(得分:1)

你可以编写一些例程并使用opensource neo4j java驱动程序

https://github.com/neo4j/neo4j-java-driver

例如。

简单地序列化RDD的结果(使用rdd.toJson),然后使用上面的驱动程序创建你的neo4j节点并推入你的neo4j实例。

答案 1 :(得分:0)

Read this issue回答我的问题。

长话短说,neo4j-spark-connector可以将Spark数据写入Neo4j db,是的,新版本的文档很缺乏。

答案 2 :(得分:0)

我知道这个问题已经很老了,但我不认为neo4j-spark-connector可以解决您的问题。完整的故事,示例代码和详细信息都可以在here中找到,但是如果仔细看一下Neo4jDataFrame.mergeEdgeList示例(已建议),那么总而言之,您会注意到它的作用为数据帧中的每一行实例化一个驱动程序。这将在具有10行的单元测试中起作用,但是您不能指望它在具有数百万或数十亿行的实际案例中起作用。此外,在上面的链接中还介绍了其他缺陷,您可以在其中找到基于csv的解决方案。希望对您有所帮助。