gpt4 book ai didi

scala - 相当于 Apache Spark RDD 中的 getLines

转载 作者:行者123 更新时间:2023-12-04 19:05:00 25 4
gpt4 key购买 nike

我有一个 Scala 程序,可以在单台计算机上正常运行。但是,我想让它在多个节点上工作。

程序的开头是这样的:

val filename = Source.fromFile("file://...")

val lines = filename.getLines

val linesArray = lines.map(x => x.split(" ").slice(0, 3))

val mapAsStrings = linesArray.toList.groupBy(_(0)).mapValues(x => x.map(_.tail))

val mappedUsers = mapAsStrings map {case (k,v) => k -> v.map(x => x(0) -> x(1).toInt).toMap}

当尝试使用 Spark 运行程序时,我知道我需要一个 SparkContextSparkConf对象,它们用于创建 RDD .

所以现在我有:
class myApp(filePath: String) {

private val conf = new SparkConf().setAppName("myApp")
private val sc = new SparkContext(conf)
private val inputData = sc.textFile(filePath)
inputData现在是 RDD ,它在前一个程序中的等价物是 filename (我假设)。对于 RDD方法不同。那么,什么相当于 getLines ?或者没有等价物?我很难想象 RDD给我工作,例如是 inputData Array[String]或者是其他东西?

谢谢

最佳答案

documentation似乎直接回答这个:

def textFile(path: String, minPartitions: Int = defaultMinPartitions): RDD[String] 

Read a text file from HDFS, a local file system (available on all nodes), or any Hadoop-supported file system URI, and return it as an RDD of Strings.



所以 textFile相当于 fromFilegetLines ,并返回一个 RDD,其中每个条目都是文件中的一行。 inputData相当于 linesArray

关于scala - 相当于 Apache Spark RDD 中的 getLines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27408291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com