gpt4 book ai didi

scala - 如何处理 Spark Map() 函数中的异常?

转载 作者:行者123 更新时间:2023-12-03 07:14:13 25 4
gpt4 key购买 nike

我想忽略map()函数中的异常,例如:

rdd.map(_.toInt)

其中 rdd 是一个 RDD[String]

但如果遇到非数字字符串,则会失败。

忽略任何异常并忽略该行的最简单方法是什么? (我不想使用过滤器来处理异常,因为可能还有很多其他异常...)

最佳答案

您可以使用 Try 的组合和 map /过滤器。

如果计算结果符合预期,Try 会将您的计算包装为 Success;如果抛出异常,则 Try 会将您的计算包装为 Failure。然后,您可以过滤您想要的内容 - 在本例中是成功的计算,但您也可以过滤错误案例以用于记录目的,例如。

以下代码是可能的起点。您可以在 scastie.org 中运行和探索它看看它是否符合您的需求。

import scala.util.Try

object Main extends App {

val in = List("1", "2", "3", "abc")

val out1 = in.map(a => Try(a.toInt))
val results = out1.filter(_.isSuccess).map(_.get)

println(results)

}

关于scala - 如何处理 Spark Map() 函数中的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30024052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com