【问题标题】:How to read values from a files as RDD[Long, List[Long] ] from a text file?如何从文本文件中读取文件中的值作为 RDD[Long, List[Long] ]?
【发布时间】:2019-03-26 01:08:54
【问题描述】:

我是 Scala 和函数式编程的新手,我正在尝试从文本文件中将无向图读入 Scala。文本文件的格式为:

1,8,9,10 2,5,6,7 3,1,2

表示节点1连接到节点8,9和10(邻接表),节点2连接到节点5,6和7等等。

我试图将它们解读为 RDD[1, 包含所有相邻节点的列表]

var graphNodes = sc.textFile(*path to file*).map( line => { val a = line.split(",")
                                                                ( a(0).toLong, a(1).toLong )  }  )

这会给我 RDD[1,8] 因为我只读取第一个相邻值。

谁能帮助我或提供一些资源?

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    假设您每行有一条记录,例如

    sc.parallelize(List("1,8,9,10", "2,5,6,7", "3,1,2"))
      .map(_.split(",").map(_.toLong))
      .map {
        case Array(head, tail @ _*) => (head, tail)
      }.foreach(println)
    

    输出:

    (2,Vector(5, 6, 7))
    (3,Vector(1, 2))
    (1,Vector(8, 9, 10))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-18
      • 2011-04-18
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多