我在 Spark 的 GraphX 中构建了一个图表。这个图可能有 10 亿个节点和超过 100 亿条边,所以我不想一遍又一遍地构建这个图。
我希望能够构建一次,保存它(我认为最好的是在 HDFS 中),在其上运行一些进程,然后在几天或几周内访问它,添加一些新节点和边缘,然后运行一些更多的过程。
如何在 Apache Spark 的 GraphX 中做到这一点?
编辑:我想我已经找到了一个潜在的解决方案,但我希望有人确认这是否是最好的方法。
如果我有一个图,比如说graph
,我必须将它的 vertexRDD 和它的 edgeRDD 分别存储在一个文本文件中。然后,稍后,我可以访问这些文本文件,如下所示:
graph.vertices.saveAsTextFile(somePath)
graph.edges.saveAsTextFile(somePath)
我现在的一个问题是:我应该使用 saveAsTextFile() 还是 saveAsObjectFile() ?然后我应该如何在以后访问这些文件?