我们使用Spark 1.6(以及Spark 2.1)并在Hive表上运行,这些表保存为镶木地板文件。在某些情况下,我们只有几个文件(大小约为10 MB)。
例如,有两个镶木地板文件,使用sqlContext.table(tableName).rdd.count
读取这些表会创建一个只有2个任务的sparkjob需要相当长的时间(约12秒)。
我的问题是:是否可以阅读N
文件的并行度超过N
?有没有办法加快这个火花作业而不改变文件系统上的文件数量?由于HDFS是一个分布式文件系统(并且文件被复制),我可以想象超过1台机器可以同时读取(一部分)文件。
答案 0 :(得分:0)
向上 使用多个执行程序和/或多个线程(使用spark.task.cpus> 1)