第三方隐式val的Spark序列化解决方法

时间:2019-11-05 12:48:11

标签: scala apache-spark serialization sttp

我正在运行一个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后端。

0 个答案:

没有答案