2015-03-11 2 views
0

У меня есть папка с несколькими файлами частей из более раннего задания. Имя папки - «tera-output», и в ней есть файлы part-00000, part-00001 , часть-00002 и т.п..на часть-00049. Я пытаюсь написать программу scala, чтобы теперь читать каждый файл в папке. Код приведен ниже:Прочитайте несколько файлов в папке с 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()) 
    } 
} 

Моя проблема, я не знаю, как запустить цикл, чтобы прочитать каждый файл в папке «тера-выход». Каждый файл будет считываться через map(), а данные добавляются к «split». Я просмотрел некоторые документы и сообщения здесь и не мог найти какую-либо функцию для этого.

Не могли бы вы помочь с этим? Заранее спасибо!!

ответ

4

Вы можете использовать API sc.wholeTextFiles("mydir").

Это вернет PaidRDD где Key - это имя файла, а значение - это содержимое файла.

Смежные вопросы