我有一个文件夹,其中包含来自早期作业的多个部分文件文件夹名称为" tera-output",并且文件部分为00000,部分00001,部分00002等。直至00049年。我正在尝试编写一个scala程序,现在读取该文件夹中的每个文件。代码如下:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.storage.StorageLevel
object SimpleApp {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("WordCount")
val sc = new SparkContext(conf)
val file = sc.textFile("s3n://test/tera-output")
val splits = file.map(word => word)
println(splits.count())
}
}
我的问题是我不知道如何运行循环来读取" tera-output"中的每个文件。夹。每个文件都将通过map()读取,而附加到"的数据将被分割为#34;。我在这里查看了一些文档和帖子,但实际上找不到这样做的功能。
有人可以帮忙吗?提前谢谢!!
答案 0 :(得分:5)
您可以使用sc.wholeTextFiles("mydir")
API。
这将返回PaidRDD
,其中Key是文件名,value是文件内容。