【发布时间】:2016-06-04 00:43:40
【问题描述】:
Spark中有很多RDD;来自docs:
- AsyncRDDActions
- CoGroupedRDD
- 双RDDF函数
- HadoopRDD
- JdbcRDD
- 新HadoopRDD
- 有序RDDF函数
- 对RDDF函数
- PartitionPruningRDD
- RDD
- SequenceFileRDDFunctions
- 无序RDD
- UnionRDD
我不明白它们应该是什么。
另外我注意到有
ParallelCollectionRDDMapPartitionsRDD
虽然它们在我的 spark-shell 中经常作为对象出现,但并未列出。
问题
为什么会有不同的 RDD,它们各自的用途是什么?
到目前为止我所理解的
我从教程和书籍(例如“Learning Spark”)中了解到,RDD 上有两种类型的操作:用于具有对 (x, y) 和所有其他操作的 RDD。所以我希望有课程RDD 和PairRDD 就是这样。
我的怀疑
我怀疑我弄错了部分,实际情况是很多 RDD 类可能只是一个 RDD 类 - 但这会使事情变得不那么整洁。因此,开发人员决定将不同的方法放入不同的类中,为了将这些方法提供给任何 RDD 类类型,他们使用implicit 在类类型之间进行强制转换。我怀疑由于许多 RDD 类类型以“Functions”或“Actions”结尾,并且各个 scaladocs 中的文本听起来像这样。
另外我怀疑一些 RDD 类仍然不是那样,但有一些更深入的含义(例如ShuffledRDD)。
但是 - 我不确定。
【问题讨论】:
标签: scala apache-spark