【发布时间】:2015-06-09 15:17:05
【问题描述】:
我有 scala 代码,它使用通配符从 HDFS 获取多个输入文件,每个文件进入一个函数,在该函数中单独对每个文件进行处理。
import de.l3s.boilerpipe.extractors.KeepEverythingExtractor
val data = sc.wholeTextFiles("hdfs://localhost:port/akshat/folder/*/*")
val files = data.map { case (filename, content) => filename}
def doSomething(file: String): (String,String) = {
// logic of processing a single file comes here
val logData = sc.textFile(file);
val c = logData.toLocalIterator.mkString
val d = KeepEverythingExtractor.INSTANCE.getText(c)
val e = sc.parallelize(d.split("\n"))
val recipeName = e.take(10).last
val prepTime = e.take(18).last
(recipeName,prepTime)
}
//How transformation and action applied here?
我被困在如何应用进一步的转换和操作,以便我的所有输入文件都根据函数 doSomething 进行映射,并且每个输入文件的所有输出都使用 saveAsTextFile 存储在单个文件中。
【问题讨论】:
标签: scala hadoop apache-spark hdfs