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

how to write Spark data frame to Neo4j database

我想建立这个工作流程:

我的想法很基础:将df中的每一行写成一个节点,其中每一列的值代表该节点的属性值

我看过很多文章,包括 neo4j-spark-connector and Introducing the Neo4j 3.0 Apache Spark Connector 但它们都专注于从 Neo4j 数据库导入 Spark 数据...到目前为止,我无法找到编写 Spark 的明确示例数据框到 Neo4j 数据库。

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

您可以编写一些例程并使用开源 neo4j java 驱动程序

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

例如。

简单序列化 RDD 的结果(使用 rdd.toJson),然后使用上述驱动程序创建您的 neo4j 节点并推送到您的 neo4j 实例中。

Read this issue回答我的问题。

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

我知道这个问题很老了,但我认为 neo4j-spark-connector 不能解决您的问题。完整的故事、示例代码和详细信息可用 here but to cut the long story short if you look carefully at the Neo4jDataFrame.mergeEdgeList 示例(已建议),您会注意到它所做的是为数据帧中的每一行实例化一个驱动程序。这将适用于具有 10 行的单元测试,但您不能期望它适用于具有数百万或数十亿行的真实案例场景。除了上面 link 中解释的其他缺陷,您可以在其中找到基于 csv 的解决方案。希望对你有帮助。