0
getOrCreate()
方法在SparkContext Class
中的用法以及我如何使用它?我沒有找到任何合適的例子(編碼明智)。如何在SparkContext類中使用getOrCreate()方法,以及我們通過此方法實現的功能
我的理解是,用上面的方法我可以分享應用程序之間的火花上下文。這裏的應用意味着什麼? 是否將應用程序提交給火花集羣? 如果是這樣,那麼我們應該能夠使用在一個應用程序中註冊的全局變量(廣播)和臨時表到另一個應用程序中?
如有任何人都可以闡述,並就這個合適的例子。
感謝您的答覆。我可以從你的解釋getOrCreate()方法以某種方式創建一個全球性的單上下文,如果getOrCreate()方法是在同一火花羣集上運行不同的應用程序調用我會火花背景下的同一個實例明白了嗎? 如果這是真的,我可以共享在這些應用程序中創建的RDD(全局變量和臨時表)的狀態,因爲火花上下文是相同的?即使這些應用程序在同一個Spark集羣中的不同JVM上運行,我也能實現這一切?我希望我正確理解這一點! – Abhinav
只能在單個JVM(運行Spark驅動程序的JVM)內共享SparkContext。因此,共享SparkContext只發生在同一個驅動程序JVM中運行的應用程序之間。在同一個JVM中,getOrCreate()會給你同樣的SparkContext實例;這將幫助您在由相同Spark Driver生成的不同應用程序之間共享廣播變量等。 – suj1th
現在我明白你想要解釋的是什麼。有沒有關於如何從運行在JVM上的Spark驅動生成不同應用程序的合適示例? 。就好像我嘗試在Spark集羣上運行不同的應用程序一樣,它將始終爲不同的JVM上的每個應用程序運行不同的驅動程序進程。我試圖找到它,但沒有得到任何合適的例子。 – Abhinav