1
我正在用Apache Spark開發應用程序,我需要能夠收集自定義異常或消息,然後通過電子郵件發送它們。Apache Spark collect描述意外行爲的異常或消息
目前我使用的是CollectionAccumulator[String]
,但是我必須隱式地或顯式地提供這個累加器或sparkContext。
我非常確定必須有像全局對象持有者那樣的東西,可以這樣使用:GlobalExceptionAccumulator.accumulate(e)
,或者某人使用了類似的東西或甚至更好的解決方案。也許這個累加器的自定義包裝。
這裏是如何爲現在開發:
implicit val acc = spark.sparkContext.collectionAccumulator[String]("Failed.")
...
object Mappings {
...
def valueOf(name: String)(implicit accumulator: CollectionAccumulator[String]): String = {
Try(vals(name)) match {
case Success(value) => value
case Failure(e) =>
accumulator.add(s"No value defined for '$name'")
""
}
}
...
}