gpt4 book ai didi

scala - 如何在Apache Spark(scala)中迭代RDD

转载 作者:行者123 更新时间:2023-12-03 11:50:27 26 4
gpt4 key购买 nike

我使用以下命令用一组包含2个字符串[“ filename”,“ content”]的数组填充RDD。

现在,我想遍历所有这些事件,以便对每个文件名和内容进行处理。

val someRDD = sc.wholeTextFiles("hdfs://localhost:8020/user/cloudera/*")


我似乎找不到任何有关如何执行此操作的文档。

所以我想要的是:

foreach occurrence-in-the-rdd{
//do stuff with the array found on loccation n of the RDD
}

最佳答案

Spark中的基本操作是mapfilter

val txtRDD = someRDD filter { case(id, content) => id.endsWith(".txt") }


txtRDD现在将仅包含扩展名为“ .txt”的文件

如果您想对这些文件进行字数统计,您可以说

//split the documents into words in one long list
val words = txtRDD flatMap { case (id,text) => text.split("\\s+") }
// give each word a count of 1
val wordT = words map (x => (x,1))
//sum up the counts for each word
val wordCount = wordsT reduceByKey((a, b) => a + b)


当您需要执行一些昂贵的初始化操作时,您想使用 mapPartitions -例如,如果要使用像Stanford coreNLP工具这样的库进行命名实体识别。

掌握 mapfilterflatMapreduce,您就可以熟练掌握Spark。

关于scala - 如何在Apache Spark(scala)中迭代RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25914789/

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