【问题标题】:Getting an RDD of Failure[T] from an RDD[Try[T]] without compilation warning从 RDD[Try[T]] 获取失败 [T] 的 RDD 而没有编译警告
【发布时间】:2016-09-08 13:22:54
【问题描述】:

我有一个 RDD[Try[T]],我想 trasnfRDD 只包含 Failure[T] 类型的元素,这意味着方法 isFailure 返回 true 的所有元素。到目前为止,我找到了以下解决方案。

rows.filter(row => row.isFailure)
    .map {
      case Failure(e) => // Do something...
    }

警告:(11, 36) 匹配可能并不详尽。 它会在以下输入上失败:Success(_) 地图{

有没有什么方法可以在不产生编译警告的情况下获得相同的结果?

非常感谢。

【问题讨论】:

    标签: scala apache-spark try-catch rdd


    【解决方案1】:

    乍一看,collect 似乎更适合这里:

    rows.collect {
      case f @ Failure(e) => f
    }
    

    【讨论】:

    • 非常感谢。我总是忘记collect 方法!
    • 或者稍微简单一点的case f: Failure[_]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多