gpt4 book ai didi

scala - 为什么 Spark RDD 在 T 中是不变的?

转载 作者:行者123 更新时间:2023-12-01 09:38:36 24 4
gpt4 key购买 nike

我希望能够做这样的事情

abstract class Super()
class Type1() extends Super
class Type2() extends Super

val rdd1 = sc.parallelize(Seq(new Type1()))
val rdd2= sc.parallelize(Seq(new Type2()))
val union = rdd1.union(rdd2)

如果 RDD 在 T union 上是协变的,则 RDD[Super],但这甚至没有编译。是否有任何理由让 RDD 在 T 中保持不变?

最佳答案

This "won't-fix" JIRA ticket explains it all .

因为 Stack Overflow 不喜欢仅仅链接到一个答案,这里是它的要点。

  • 尽管 RDD 向用户公开了一个不可变的接口(interface),但内部状态存在很多可变性,这需要在整个地方进行向下转换。
  • Map 的互动(键不变)和Array (不变量)会更尴尬(几乎可以肯定不向后兼容)
  • 协方差意味着 Spark 直到运行时才知道 RDD 中实际有什么,这使得与其他库的交互(即酸洗)更加复杂。
  • 关于scala - 为什么 Spark RDD 在 T 中是不变的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41081499/

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