Neo4j作为pyspark的数据源

时间:2018-01-09 13:42:26

标签: python apache-spark neo4j pyspark apache-kafka

我有一个要求,我要从Neo4j中提取数据并从该数据中创建Spark RDD。我在我的项目中使用Python。有this连接符用于相同目的,但它是用Scala编写的。所以我现在可以想到以下解决方法 -

  1. 以小块/批次从neo4j查询数据,使用parallize()方法将每个块转换为Spark RDD。最后使用union()方法合并/组合所有RDD以获得单个RDD。然后我可以做转换&对他们的行动。

  2. 另一种方法是从Neo4j读取数据并从中创建Kafka生成器。然后使用Kafka作为Spark的数据源。 e.g。

  3.   

    Neo4j - >卡夫卡 - >火花

    我想知道哪一个对大块数据更有效?如果有更好的方法来解决这个问题,请帮我解决。

    注意:我确实尝试扩展pyspark API以便在python中创建自定义RDD。与Spark的Scala / Java API相比,API与API非常不同。对于Scala API,可以通过扩展RDD类并覆盖compute()getPartitions()方法来创建自定义RDD。但是在pyspark API中,我无法在compute()

    中的RDD课程下找到rdd.py

1 个答案:

答案 0 :(得分:0)

Michael Hunger的

This blog post谈到使用Spark将CSV数据导入 Neo4j,但也许一些Spark代码可以帮助你。还有Mazerunner这是一个Spark / Neo4j / GraphX集成工具,用于使用Spark将子图传递给Neo4j。