博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Big Data 每日一题20180915】Spark编码时,Static 变量慎用?
阅读量:4216 次
发布时间:2019-05-26

本文共 239 字,大约阅读时间需要 1 分钟。

static变量最好不要用,应该使用Spark提供的广播变量和累加器

Broadcast     Accumulator

 

static变量会引发的问题:

1、 类的static变量不会被序列化,序列化task的时候,值会丢失

2、static变量保存在内存模型中的方法区,会影响(同一个Excuter的线程)其他task的值。

3、演算子内使用外部变量,特别是 执行action(如输出结果到HDFS上,条件是变量的值) 

     如果每次变量的值不同,产生的task也可能不同,结果自然就不同了

转载地址:http://jfvmi.baihongyu.com/

你可能感兴趣的文章
Java新手的通病[4]:异常处理使用不当
查看>>
java编程中的常见异常
查看>>
java读写文件大全
查看>>
Java垃圾回收器的工作机制
查看>>
SQL优化34条 java面试题
查看>>
java sql常见面试题
查看>>
Java同步、异步相关知识点
查看>>
java线程总结
查看>>
Java性能优化[1]:基本类型 vs 引用类型
查看>>
Java 短路运算符和非短路运算符
查看>>
XML的两种解析方式Dom和SAX的区别
查看>>
使用 SAX 处理 XML 文档
查看>>
session与cookie的区别
查看>>
java中数据类型转换
查看>>
Java运算符、 &&与&、||与|区别
查看>>
Java 算术运算符
查看>>
Spring 模板方法 vs 经典模板方法设计模式
查看>>
白话解说Spring 容器设计理念
查看>>
需求分析心得
查看>>
java笔试题以及答案详解 一
查看>>