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

时间:2015-02-26 22:19:02

标签: apache-spark spark-streaming apache-spark-sql

我们正在使用Spark SQL的内存sql功能来加入和解析一些本地数据文件,然后再将其上传到别处。虽然我们对功能感到满意,但我们还是想调整配置以挤出一些额外的性能。

我们没有集群,但可能有3个单独的节点来自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)

1 个答案:

答案 0 :(得分:1)

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

spark.sql.inMemoryColumnarStorage.partitionPruning true

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