gpt4 book ai didi

scala - 巧妙处理 Spark RDD 中的 Option[T]

转载 作者:行者123 更新时间:2023-12-02 06:15:35 25 4
gpt4 key购买 nike

我正在使用 Apache Spark 的 Scala API 开发一些代码,我正在尝试巧妙地解决包含一些 Option[T]RDD 之间的基本转换。

假设我们有以下列表

val rdd: RDD[(A, Option[B])] = // Initialization stuff

我们想对 rdd 进行转换以获得以下内容

val transformed: RDD[(B, A)]

对于所有评估为 Some[B]Option[B]。我发现执行此操作的最佳方法是应用以下转换链:

val transformed = 
rdd.filter(_.isDefined)
.map { case (a, Some(b)) => (b, a) }

我知道如果我使用简单的 Scala List,我可以使用 collect 方法:

val transformed = list.collect {
case (a, Some(b)) => (b, a)
}

this 中所述所以我的问题。

改用 Spark RDD,我有哪一种选择??

最佳答案

你可以使用flatMap:

rdd.flatMap {
case (a, Some(b)) => Some(b, a)
case _ => None
}

关于scala - 巧妙处理 Spark RDD 中的 Option[T],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35326520/

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