Scala Spark GraphX:如何从边列表加载线图?

Scala Spark GraphX:如何从边列表加载线图?,scala,apache-spark,spark-graphx,Scala,Apache Spark,Spark Graphx,我想从边列表中创建一个Graph对象,其中每条边成为一个顶点,如果两条边共享一个端点(线图),则每个顶点都连接到另一个顶点。边缘保存在.csv文件中。例如[1,2\n 3,2\n 3,4\n]应该成为一个三节点图,其中(1,2)连接到(3,2),后者也连接到(3,4)。 以下是我从边缘加载图形的代码: import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions._ import org.apache

我想从边列表中创建一个Graph对象,其中每条边成为一个顶点,如果两条边共享一个端点(线图),则每个顶点都连接到另一个顶点。边缘保存在.csv文件中。例如[1,2\n 3,2\n 3,4\n]应该成为一个三节点图,其中(1,2)连接到(3,2),后者也连接到(3,4)。 以下是我从边缘加载图形的代码:

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.rdd.RDD
import org.apache.spark.graphx._
import org.apache.spark.storage.StorageLevel
import org.apache.log4j.{Level, Logger}

def main(args: Array[String]) {

    val conf = new SparkConf().setAppName("project_3")
    val sc = new SparkContext(conf)

    val edges = sc.textFile(args(1)).map(line => {val x = line.split(","); Edge(x(0).toLong, x(1).toLong , 1)} ).filter({case Edge(a,b,c) => a!=b})

    val g = Graph.fromEdges[Int, Int](edges, 0, edgeStorageLevel = StorageLevel.MEMORY_AND_DISK, vertexStorageLevel = StorageLevel.MEMORY_AND_DISK)
}
args(1)只是一个文件路径。我已经读到,这可以在时间复杂度上以2的开销完成,但我不确定如何使用GraphX实现它。非常感谢您的帮助