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

时间:2015-03-11 15:38:39

标签: 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())
  }
}

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

有人可以帮忙吗?提前谢谢!!

1 个答案:

答案 0 :(得分:5)

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

这将返回PaidRDD,其中Key是文件名,value是文件内容。