今天在學習spark用java讀取json文件時,學習了遇到了Only one SparkContext may be running in this JVM的錯誤。
錯誤的原因是因爲在調用mapper.readValue函數時傳入了帶有SparkContext的類,導致SparkContext被加載兩次。於是又回頭看了看class的概念。
對象類的.class保存了類的所有信息,在裝載的同時會自動創建該類的實例,所以在調用該函數時會重新創建該類的實例,而該實例中又包含了SparkContext對象,因此,jvm中便出現了兩個SparkContext對象,從而導致了該錯誤。