我正在运行一个Spark作业,该作业沿线执行一些Http调用。我决定使用一个库Sttp
,它需要一个implicit
Http后端,在我的情况下是HttpURLConnectionBackend()
:一个对象apply创建了一个新的类实例,而不是 可序列化。
trait ApiUtils extends MediaTypes {
implicit val backend: SttpBackend[Identity, Nothing, NothingT] = HttpURLConnectionBackend()
def post = { ...
因此,由于我的Spark作业扩展了此trait
,因此在执行程序上无法使用Spark作业中此trait
的所有方法。
作为一种毫无头脑的解决方法,我将val
设为了def
,但是建议将这些问题整理出来的方法是什么?
Spark作业本身是class
,而不是object
。这样做的原因是在测试中模拟/添加提到的Http后端。