我正在运行一个 Spark 作业,该作业沿线执行一些 Http 调用。我决定使用一个Sttp
需要implicit
Http 后端的库,在我的例子中HttpURLConnectionBackend()
:一个对象应用它创建一个新的类实例,它是不可序列化的。
trait ApiUtils extends MediaTypes {
implicit val backend: SttpBackend[Identity, Nothing, NothingT] = HttpURLConnectionBackend()
def post = { ...
因此,因为我的 Spark 作业扩展了 this trait
,所以 Spark 作业中的 this 中的所有方法trait
在执行程序上都不可用。
作为一个相当无脑的解决方法,我做了val
a def
,但是整理这些东西的推荐方法是什么?
Spark 作业本身是一个class
,而不是一个object
. 这样做的原因是在测试中模拟/存根提到的 Http 后端。