《Spark编程基础》(Scala版)第八章简答题答案(自制)
8 Spark MLlib
简答题
T1 与 MapReduce 框架相比,为何 Spark 更适合进行机器学习各算法的处理?
答:通常情况下,机器学习算法参数学习的过程都是迭代计算。MapReduce 由于延迟高、磁盘开销大、无法高效支持迭代计算,不适合高效的实现机器学习算法;Spark 由于立足于内存计算,所以能很好地与机器学习算法相匹配。
T2 简述流水线(Pipeline)几个部件及主要作用,使用 Pipeline 来构建机器学习工作流有什么好处?🌱
答:
① 流水线部件及其作用:
(1) DataFrame: 即 Spark SQL 中的 DataFrame。与 RDD 数据集相比,它包含了模式(schema)信息,类似于传统数据库中的二维表格;
(2) 转换器(Transformer): 可以将一个 DataFrame 转换为另一个 DataFrame 的算法;
(3) 评估器(Estimator):评估器是对学习算法或在训练数据上的训练方法的概念抽象;
(4) 流水线(PipeLine):流水线将多个工作流阶段(转换器和评估器)连接在一起,形成机器学习的工作流,并获得结果输出;
(5) 参数(Parameter):即用来设置转换器或者评估器的参数。
② 好处:
(1)结构清晰:流水线可以将复杂的机器学习任务分解为多个独立的部件,使整个工作流更易于理解和管理。
(2)代码重用:通过将各个部件模块化,可以在不同的项目中重复使用和共享这些部件,提高开发效率。
T3 基于 RDD 的机器学习 API 和基于 DataFrame 的机器学习 API 有什么不同点?请思考基于 DataFrame 进行机器学习的优点。🌱
答:
① 两者不同点:基于 RDD 的机器学习 API 的算法实现都是基于原始的 RDD;基于 DataFrame 的机器学习 API 除此之外额外有一个机器学习流水线式 API 套件。
② 基于 DataFrame 的优点:基于内部流水线 API 进行机器学习更加灵活,也更符合机器学习的特点,同时也更容易从其他的语言进行迁移。

浙公网安备 33010602011771号