使用函数式概念来处理分布在集群上的大数据在工业界非常流行,可以说这是函数式思想在工业界的首次广泛应用。MapReduce 和 Hadoop,以及最近用 Scala 编写的快速、内存分布式集合框架 Apache Spark 的流行就证明了这一点。在本课程中,我们将了解如何使用 Spark 将数据并行范式扩展到分布式情况。我们将详细介绍 Spark 的编程模型,仔细了解它与我们熟悉的编程模型(如共享内存并行集合或顺序 Scala 集合)的不同之处和不同时间。通过 Spark 和 Scala 中的实践示例,我们将了解何时应考虑延迟和网络通信等与分布相关的重要问题,以及如何有效解决这些问题以提高性能。 学习成果。本课程结束时,您将能够:- 从持久化存储中读取数据并将其加载到 Apache Spark 中,- 使用 Spark 和 Scala 操作数据,- 以函数式风格表达数据分析算法,- 认识如何在 Spark 中避免洗牌和重新计算:您应该至少有一年的编程经验。熟练掌握 Java 或 C# 是理想的选择,但熟练掌握其他语言(如 C/C++、Python、Javascript 或 Ruby)也足够了。您应该熟悉使用命令行。本课程适合在《并行编程:https://hua.dididi.sbs/learn/parprog1》之后学习。请注意,本版本课程使用的是 Scala 2.13。您可以在这里找到使用 Scala 3 的最新版本课程:https://hua.dididi.sbs/learn/scala-spark-big-data。
了解顶级公司的员工如何掌握热门技能

该课程共有4个模块
在您的计算机上运行 Scala。完成示例作业,熟悉我们独特的作业提交方式。本周,我们将弥合共享内存场景(在并行编程课程中学到的先决条件)和分布式场景中数据并行性之间的差距。我们将探讨分布式系统中出现的重要问题,如延迟和故障。我们将继续讲解 Spark 的基础知识,这是一个面向功能的 Scala 大数据处理框架。在第一周结束时,我们将立即动手分析真实世界的数据集,以实践我们所学到的 Spark 知识。
涵盖的内容
7个视频6篇阅读材料3个编程作业
本周,我们将学习一种特殊的 RDD--配对 RDD。有了这种特殊的 RDD,我们将学习大型数据集的基本操作,如还原和连接。
涵盖的内容
4个视频2个编程作业
本周我们将探讨使用连接等操作对性能的影响。是否有可能不用支付在网络上移动数据的开销就能获得相同的结果?为了回答这个问题,我们将深入研究如何对数据进行分区,以实现更好的数据本地性,进而优化我们的一些 Spark 作业。
涵盖的内容
4个视频
有了对 Spark 作业中数据移动成本的新认识,以及上周针对数据本地性优化作业的一些经验,本周我们将重点讨论如何更轻松地实现类似的优化。结构化数据能帮助我们吗?我们将了解 Spark SQL 及其强大的优化器,该优化器使用结构来进行令人印象深刻的优化。接下来,我们将介绍数据框(DataFrames)和数据集(Datasets),它们为我们提供了一种将 RDD 与 Spark SQL 强大的自动优化功能相结合的方法。
涵盖的内容
5个视频2个编程作业
位教师

人们为什么选择 Coursera 来帮助自己实现职业发展

Felipe M.
自 2018开始学习的学生
''能够按照自己的速度和节奏学习课程是一次很棒的经历。只要符合自己的时间表和心情,我就可以学习。'

Jennifer J.
自 2020开始学习的学生
''我直接将从课程中学到的概念和技能应用到一个令人兴奋的新工作项目中。'

Larry W.
自 2021开始学习的学生
''如果我的大学不提供我需要的主题课程,Coursera 便是最好的去处之一。'

Chaitanya A.
''学习不仅仅是在工作中做的更好:它远不止于此。Coursera 让我无限制地学习。'
从 计算机科学 浏览更多内容

École Polytechnique Fédérale de Lausanne







