У меня вопрос новичка: у меня есть проект Scala на основе искры, который использует junit.Это важная часть проекта:
object ResearchCrawlServiceTestSuite {
implicit var ss: SparkSession = _
var fs: FileSystem = _
@BeforeClass
def init(): Unit = {
ss = SparkSession.builder().master("local").getOrCreate()
fs = get(ss.sparkContext.hadoopConfiguration)
}
}
class ResearchCrawlServiceTestSuite {
self =>
private object testImplicits extends SQLImplicits {
protected override def _sqlContext: SQLContext = self.ss.sqlContext
}
import testImplicits._
implicit val ss: SparkSession = ResearchCrawlServiceTestSuite.ss
val fs: FileSystem = ResearchCrawlServiceTestSuite.fs
@Test def submitCrawlSanity() {
val seeds = (0 to 4).map(i => s"www.$i.com").toDF("url")
...
}
}
Если я изменю имя объекта, чтобы оно отличалось от класса под ним, кажется, что метод @BeforeClass не запустится.У меня вопрос, когда запускается аннотация @BeforeClass?как он ведет себя внутри объекта верхнего уровня, который не является объектом-компаньоном?как он ведет себя внутри объекта верхнего уровня, который является объектом-компаньоном?как ведет себя внутри вложенного объекта?