当前位置: 首页 > news >正文

【spark】java类在spark中的传递,scala object在spark中的传递

记录一个比较典型的问题,先讲一下背景,有这么一个用java写的类

public class JavaClass0 implements Serializable {private static String name;public static JavaClass0 getName(String str) {if (name == null) {name=str;}return name;}...
}

然后在spark中使用的时候:

//driver端
JavaClass0.getName("张三")//得到张三
JavaClass0.getName("李四")//得到张三df.foreachPartition{//executor端m=>JavaClass0.getName("王五")//得到王五JavaClass0.getName("钱六")//得到王五
}

原因:
scala的object对应的就是java的静态成员,可以反过来理解java的所有静态成员可被抽取成伴生对象(虽然现实中是scala最终编译成java)。以上面的JavaClass0 例子可理解为等价的scala代码为:

class JavaClass0 {...
}//伴生对象
object JavaClass0 {private var name:String = nullgetName(str:String) {if (name == null) {name=str}return name;}
}

可以看到,JavaClass0并没有被传到executor中,而是重新初始化了一遍。事实也是如此。

Objects, as singletons, are never shipped to executors. There initialized locally, whenever objects is accessed for the first time.

object是不会被传递到executor的,他们在首次被访问的时候,在executor本地做初始化。只要executor的jvm不消亡,就不会再次初始化。

参考

Sharing objects in Spark
Spark Object (singleton) serialization on executors
Java中static作用及用法详解

http://www.lryc.cn/news/145115.html

相关文章:

  • php 文字生成图片保存到本地
  • 面试手撕—二叉搜索树及其后序遍历
  • Java数据结构面试题以及答案
  • Java——它要求用户输入一个整数(实际上是一个字符串),然后计算该整数的平方值,并将结果输出。
  • 【科研论文配图绘制】task6直方图绘制
  • Leetcode刷题:395. 至少有 K 个重复字符的最长子串、823. 带因子的二叉树
  • java八股文面试[多线程]——Synchronized的底层实现原理
  • C#,《小白学程序》第三课:类、类数组与排序
  • 史上最全AP、mAP详解与代码实现
  • 百数应用中心——生产制造管理解决方案解决行业难题
  • 《存储IO路径》专题:IO虚拟化初探
  • Springboot2.0快速入门(第一章)
  • Flink流批一体计算(17):PyFlink DataStream API之StreamExecutionEnvironment
  • javeee spring cglib动态代理
  • 【Docker】Dockerfile介绍
  • 两个hdfs之间迁移传输数据
  • C++ 缺失的数字
  • JVM,JRE和JDK的区别
  • 合宙Air724UG LuatOS-Air LVGL API控件--日历 (Calendar)
  • [python]问题:pandas处理excel里的多个sheet
  • [MySQL] MySQL基础操作汇总
  • C语言每日一题 ---- 打印从1到最大的n位数(Day 1)
  • 2023-08-23 LeetCode每日一题(统计点对的数目)
  • LLMs之Code:SQLCoder的简介、安装、使用方法之详细攻略
  • 数学建模(四)整数规划—匈牙利算法
  • openGauss学习笔记-47 openGauss 高级数据管理-权限
  • 开始MySQL之路——MySQL 事务(详解分析)
  • 注解和class对象和mysql
  • 【桌面小屏幕项目】ESP32开发环境搭建
  • CSS 滚动容器与固定 Tabbar 自适应的几种方式