大数据Spark “蘑菇云”行动补充内容第70课: Spark SQL代码实战和性能调优 4个spark sql调优技巧有用!!!!

大数据Spark “蘑菇云”行动补充内容第70课: Spark SQL代码实战和性能调优

 

dataframe:

Row是没有类型的,因为Row中的所有成员都被看着Object类型!!!untyped;编译器识别不了类型
 
dataSet:类型不对,编译器立即报错的
 
强烈的建议:Spark处理的数据格式尽量是Json、Parquet、AVRO
 
重要技巧:

先读如文本log,txt,将普通文本保存为Parquet,再读入parquet,效率提高很多。体积更小,效率更高。

registerTable与registerTmptable的区别:
registerTmptable只是一个引用 ,一个视图 registerTmptable生命周期和spark sql context一致,spark sql结束了 ,registerTmptable也结束了

 

spark sql调优 :

1、spark.sql.shuffle.partitions=200  这个有用。
 
2、默认partition是128M,可以调大一点 
spark.sql.files.maxPartitionBytes=128M 调成256M
 
 
3、很多小文件浪费task,合并成一个task中,提高处理性能,将值调大。
spark.sql.files.openCostInBytes=4M

 

 

4、两个表shuffle,如join。这个最有用,经常使用的。

spark.sql.autoBroadcastJoinThreshold 默认是10M,调成100M,甚至是1G。

 

大数据Spark “蘑菇云”行动补充内容第70课: Spark SQL代码实战和性能调优 4个spark sql调优技巧有用!!!!_第1张图片

 

大数据Spark “蘑菇云”行动补充内容第70课: Spark SQL代码实战和性能调优 4个spark sql调优技巧有用!!!!_第2张图片

 

大数据Spark “蘑菇云”行动补充内容第70课: Spark SQL代码实战和性能调优 4个spark sql调优技巧有用!!!!_第3张图片

 

大数据Spark “蘑菇云”行动补充内容第70课: Spark SQL代码实战和性能调优 4个spark sql调优技巧有用!!!!_第4张图片

 

大数据Spark “蘑菇云”行动补充内容第70课: Spark SQL代码实战和性能调优 4个spark sql调优技巧有用!!!!_第5张图片


 

 

 

 

你可能感兴趣的:(大数据蘑菇云行动)