RDD操作闭包外部变量原则

   

spark RDD操作的底层实现原理

RDD相关操作都需要传入自定义闭包函数(closure),如果这个函数需要访问外部变量,那么需要遵循一定的规则,否则会抛出运行时异常。闭包函数传入到节点时,需要经过下面的步骤:

  1. 驱动程序,通过反射,运行时找到闭包访问的所有变量,并封成一个对象,然后序列化该对象
  2. 将序列化后的对象通过网络传输到worker节点
  3. worker节点反序列化闭包对象
  4. worker节点执行闭包函数

注意:外部变量在闭包内的修改不会被反馈到驱动程序。

简而言之,就是通过网络,传递函数,然后执行。

相关文章:

  • 2022-01-02
  • 2021-10-30
  • 2021-08-17
  • 2021-12-29
  • 2021-09-13
  • 2021-09-15
  • 2021-05-14
  • 2021-09-19
猜你喜欢
  • 2021-10-01
  • 2021-06-09
  • 2021-10-14
  • 2021-07-19
  • 2021-11-23
  • 2021-12-09
  • 2021-11-18
相关资源
相似解决方案