【发布时间】:2019-11-17 09:27:57
【问题描述】:
大家好,
所以我开始学习 Apache Spark 架构,并了解数据流如何在更高级别工作。
我了解到,Spark 作业在具有要在 RDDS 上运行的任务的阶段上工作,在这些阶段中,它们是通过从 Spark 控制台开始的惰性转换创建的。 (如果我错了,请纠正我)
我没明白:
-
Spark 中还有其他类型的数据结构:Data Frame 和 Dataset,并且有函数可以操作它们,
那么这些功能与应用于 RDD 的任务之间有什么关系?
-
使用 Scala 编码对 RDD 进行操作,据我所知,这是逻辑,还有其他类型的数据结构,我可以对它们进行操作并操作它们,如列表、流、向量等......所以我的问题是
如果这些操作没有应用在 RDDS 上,spark 如何执行这些操作呢?
-
我参考官方文档估计了每种算法在任何类型的 Scala 数据结构上运行的时间复杂度,但我找不到 RDDS 上操作的时间复杂度的估计值,例如 count( ) 或 ReduceKey() 应用于 RDDS。
为什么我们不能准确评估 Spark-app 的复杂性,是否可以评估基本任务的复杂性?
更正式地说,什么是 RDDS,它们与 Spark 中的一切有什么关系
如果有人能向我澄清这种混乱的信息,我将不胜感激。
【问题讨论】:
标签: scala apache-spark time rdd operation