hadoop - Spark 优化

标签 hadoop apache-spark hive

我正在读取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/

相关文章:

hadoop - 配置单元无法获取阻止

python - 如何使Reducer仅发出重复项

hadoop - Flume 和 Sqoop 有什么区别?

apache-spark - Spark 数据集连接性能

shell - 如何在 Oozie 中使用配置单元操作运行 shell 脚本?

hadoop - Hive 表的基于时间的查询

java - 从 eclipse 提交 hadoop 作业时出现 ConnectException

scala - 关于如何在 Scala 中使用随机值向现有 DataFrame 添加新列

apache-spark - Spark : Convert a textfile to Dataframe using case class

oracle - 不使用 Scoop 将 Oracle 数据存储到 hadoop 层