使用Scala读取文件夹中的多个文件以获取Spark作业

use*_*194 1 scala apache-spark

我有一个文件夹,其中包含来自早期作业的多个部分文件.文件夹名称为"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())
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何运行循环来读取"tera-output"文件夹中的每个文件.每个文件将通过map()读取,数据附加到"splits".我在这里查看了一些文档和帖子,但实际上找不到这样做的功能.

有人可以帮忙吗?先感谢您!!

Ram*_*ana 5

您可以使用sc.wholeTextFiles("mydir")API.

这将返回PaidRDDKey是文件名,值是文件内容.