我正在读取Hive表并为表中的字段之一做一个简单的sum(field1)
,然后通过执行.show()
来执行显示功能
该表有近1200万行,在YARN上运行该作业需要18秒。在SQL Server上,相同的功能只需不到10秒的时间。
关于如何在Spark上优化查询的想法?
最佳答案
如果您可以发布更好的查询,那么总有一些通用选项可用于优化Spark作业:
1,在执行任何df之前设置shuffle分区,如下所示
sql("""SET spark.sql.shuffle.partitions=400""")
2.使用广播连接将并行执行(如果您正在使用连接)
select /*+ BROADCAST (B) */ a.colum1 FROM completedata INNER JOIN (select column 2 from completedata2) B
3.调整执行者和执行者的内存。
希望这可以帮助!
关于hadoop - Spark 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40977252/