【发布时间】:2015-02-20 02:30:56
【问题描述】:
如何从 HDFS 上的目录中读取所有文件并使用 scalding 对其进行处理。对于本地文件系统,我使用以下
import com.twitter.scalding._
import com.twitter.scalding.JsonLine
import java.io._
class ParseJsonJob(args: Args) extends Job(args) {
val fileList = new File(args("input")).listFiles
val fields = ('device_guid
,'service_name
,'event_type
)
fileList.map {
fileName =>
JsonLine(fileName.toString, fields)
.read
.filter ('service_name) { name: String => name == "myservice" }
.write(Tsv(args("output") + fileName.toString.split("/").last))
}
}
这不适用于 HDFS。 TextLine 或 JsonLine 是否除了文件之外还读取目录?
【问题讨论】: