如何在spark中并行读取tar.bzip2文件。 我创建了一个读取tar.bzip2文件的java hadoop自定义阅读器,但由于只使用了一个核心,因此只需要一个执行程序获取所有数据,因此只需要使用一个核心,因此读取文件需要花费太多时间。
答案 0 :(得分:0)
因此,我们知道bzip的文件是可拆分的,因此当将bzip的文件读入RDD时,数据将分布在各个分区中。但是,基础tar文件也将分布在各个分区中,并且不可拆分,因此,如果您尝试在分区上执行操作,则只会看到很多二进制数据。
为解决这个问题,我只是将压缩后的数据读取到具有单个分区的RDD中。然后,我将该RDD写到目录中,所以现在您只有一个包含所有tar文件数据的文件。然后,我将这个tar文件从hdfs中拉到本地文件系统中,然后将其解压缩。