2016-09-12 14 views
0

변수의 초기화가 beforeAll 메서드 내에서 발생하는 경우 (즉, 객체의 인스턴스 생성 후) var를 사용하지 않는 방법이 있습니까?BeforeAll에서 var 사용을 피하는 방법

나는 불변성을 선호하고 싶습니다 ...

https://github.com/holdenk/spark-testing-base/blob/master/src/main/1.3/scala/com/holdenkarau/spark/testing/SharedSparkContext.scala

+0

봐있을 것이다 : http://eugenezhulenev.com/blog/2014/10/18/run-tests-in-stand spark-cluster/생성자에서 컨텍스트를 초기화하는 데 어떤 영향이 있을지 모르겠지만 괜찮습니다. – Markon

답변

0

당신이 경우에 가장 좋은 방법은 다음과 같습니다

object SparkContextProvider { 
    val sparkContext: SparkContext = { 
     val sc = new SparkContext(conf) 
     setup(_sc) 
     sc 
    } 
} 

당신에게 :

lazy val x: Type = _ 
override def beforeAll = { 
    x = //you code 
} 
+0

'lazy var'이 없습니다. –

+0

이것은 나를 위해 컴파일되지 않습니다, 그것은 여전히 ​​재 할당이 있다고 생각합니다. –

0

당신은, 스칼라는 그 중 하나가 있는지 확인합니다 이것을 달성하기 위해 외부 동반자 객체를 사용할 수 있습니다 테스트 코드는 다음에서

trait SharedSparkContext extends SparkContextProvider { 
    val sc = SparkContextProvider.sparkContext 
}