在Spark中并行读取单个镶木地板文件?

时间:2017-05-04 06:41:55

标签: apache-spark hdfs

我们使用Spark 1.6(以及Spark 2.1)并在Hive表上运行,这些表保存为镶木地板文件。在某些情况下,我们只有几个文件(大小约为10 MB)。

例如,有两个镶木地板文件,使用sqlContext.table(tableName).rdd.count读取这些表会创建一个只有2个任务的sparkjob需要相当长的时间(约12秒)。Screenshot from SparkUI

我的问题是:是否可以阅读N文件的并行度超过N?有没有办法加快这个火花作业而不改变文件系统上的文件数量?由于HDFS是一个分布式文件系统(并且文件被复制),我可以想象超过1台机器可以同时读取(一部分)文件。

1 个答案:

答案 0 :(得分:0)

向上 使用多个执行程序和/或多个线程(使用spark.task.cpus> 1)