针对单个节点进程的Spark SQL优化配置



我们使用Spark SQL强大的内存SQL功能来连接和解析一些本地数据文件,然后再将它们上传到其他地方。虽然我们对功能很满意,但我们希望调整配置以挤出一些额外的性能。

我们没有集群,但可能会有5个单独的节点,所有节点都来自S3,分别解析它们(它们不依赖于任何其他外部文件),并上传它们。不幸的是,我们使用的是Java api。

这些是我正在试验的配置,任何帮助都会很棒。

(Every RDD is being cached)
spark.sql.inMemoryColumnarStorage.compressed    true
spark.sql.inMemoryColumnarStorage.batchSize 20000(doubled)
spark.sql.autoBroadcastJoinThreshold    10485760 
spark.sql.shuffle.partitions    10(since its a local process, reducing from 200)

您还可以设置以下属性,以确保在激发查询时根据其列统计信息修剪批:-

spark.sql.inMemoryColumnarStorage.partitionPruning true

注意-就Spark 1.2而言,这是属性名称。对于1.1,我记得属性名称有点不同。如果您使用的是1.1,请进行同样的检查。

相关内容

  • 没有找到相关文章

最新更新