对一个大表进行了30个天分区的查询, spark客户端显示了所有excutor均已执行完毕.
查看hdfs分区也显示已有数据, desc表名显示表还没作成.
于是用 hadoop fs -ls 看了下hdfs文件数发现有上万个小文件. 导致合并查询结果时间巨长
小文件过多会导致文件系统效率低下.我们可以在写sparksql时加入hint合并小文件.
方法如下:
--spark-sql select /*+COALESCE(1)*/ from ( select field from base.table )t ;