如何将 Spark 数据帧写入 Neo4j 数据库
how to write Spark data frame to Neo4j database
我想建立这个工作流程:
- 使用 Spark 预处理一些数据,以数据框结束
- 将这样的数据帧作为一组节点写入 Neo4j
我的想法很基础:将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 的解决方案。希望对你有帮助。
我想建立这个工作流程:
- 使用 Spark 预处理一些数据,以数据框结束
- 将这样的数据帧作为一组节点写入 Neo4j
我的想法很基础:将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 的解决方案。希望对你有帮助。