如题:
因路径下面都是二进制文件,所以得用sequenceFile()去加载输入路径。但是如果路径下面有空文件的话 会提示文件类型不对,惊奇了。
如果是普通文件,用textFile() ,路径下有空文件也是可以跑的
想问下,有没有可以过滤空文件的方法
因路径下面都是二进制文件,所以得用sequenceFile()去加载输入路径。但是如果路径下面有空文件的话 会提示文件类型不对,惊奇了。
如果是普通文件,用textFile() ,路径下有空文件也是可以跑的
想问下,有没有可以过滤空文件的方法
就是将不是空文件的文件目录都放到一个文件中
用spark 将这个文件读到rdd中,再将这个rdd内容(文件路径)作为另一个rdd输入路径
然后就OK了
ps:
因为路径下的文件太多(10万多个,都是大文件),每次跑一点点就出错了!唉,心累!
没办法,将目录文件再次拆分,十个文件,每个一万。
然后,大功告成。但是感觉这样太不方便了,数据是每天都有,难道每次跑之前都要新建个目录文件么?
hadoopConf.set("mapreduce.input.pathFilter.class","com.filter.FileFilter");
但是有两个问题,一个是做一次筛选 就要花很久,第二个是筛选完了,同样还是有十万多个文件。用spark直接加载的话,会报错。
java.nio.channels.ClosedChannelException