今天在学习spark用java读取json文件时,学习了遇到了Only one SparkContext may be running in this JVM的错误。
错误的原因是因为在调用mapper.readValue函数时传入了带有SparkContext的类,导致SparkContext被加载两次。于是又回头看了看class的概念。
对象类的.class保存了类的所有信息,在装载的同时会自动创建该类的实例,所以在调用该函数时会重新创建该类的实例,而该实例中又包含了SparkContext对象,因此,jvm中便出现了两个SparkContext对象,从而导致了该错误。