Spark中閉包的理解

概念的理解:函數可以訪問函數外面的變量,但是函數內對變量的修改,在函數外是不可見的。 RDD相關操作都需要傳入自定義閉包函數(closure),如果這個函數需要訪問外部變量,那麼需要遵循一定得規則,否則會拋出運行時異常。閉包函數傳入到節點時,需要經過下面的步驟: 驅動程序,通過反射,運行時找到閉包訪問的所有變量,並封成一個對象,然後序列化該對象; 將序列化後的對象通過網絡傳輸到worker節點;
相關文章
相關標籤/搜索