在正常调用过程中,难免需要对多个文件夹下的多个文件进行读取,然而之前只是明确了spark具备读取多个文件的能力。
针对多个文件夹下的多个文件,以前的做法是先进行文件夹的遍历,然后再进行各个文件夹目录的读取。
今天在做测试的时候,居然发现spark原生就支持这样的能力。
原理也非常简单,就是textFile功能。编写这样的代码,读取上次输出的多个结果,由于RDD保存结果都是保存为一个文件夹。而多个相关联RDD的结果就是多个文件夹。
通过如下代码:
//## read all files(files in different directorys) val alldata = sc.textFile("data/Flag/*/part-*") println(alldata.count())
经过测试,可以实现对多个相关联RDD保存结果的一次性读取。