第3章 Spark机器学习的三剑客

在这一章,将讨论以下内容:

  • 使用Spark 2.0的内部数据源创建RDD;
  • 使用Spark 2.0的外部数据源创建RDD;
  • 使用Spark 2.0的filter() API转换RDD;
  • 使用非常实用的flatMap() API转换RDD;
  • 使用集合操作API转换RDD;
  • 使用groupBy()和reduceByKey()函数对RDD转换/聚合;
  • 使用zip() API转换RDD;
  • 使用paired键值RDD进行关联转换;
  • 使用paired键值RDD进行汇总和分组转换;
  • 根据Scala数据结构创建DataFrame;
  • 不使用SQL方式创建DataFrame;
  • 根据外部源加载和设置DataFrame;
  • 使用标准SQL语言(即SparkSQL)创建DataFrame;
  • 使用Scala序列处理Dataset API;
  • 根据RDD创建和使用Dataset,再反向操作;
  • 使用DatasetAPI和SQL一起处理JSON;
  • 使用领域对象对Dataset API进行函数式编程。

Spark有效处理大规模数据的3个主要工具是RDD、DataFrame和Dataset API。虽然每个API都有自己的优点,但新范式转变支持Dataset作为统一数据API,以满足在单个界面中所有数据处理需求。

新的Spark 2.0 Dataset API是一个类型安全的领域对象集合,可以使用函数运算或关系操作方式执行(类似于RDD的filter、map和flatMap()等)并行转换。为了向后兼容,Dataset有一个称为DataFrame的视图,它是无类型的行集合。在本章中,我们将演示3个API集。图3-1总结了Spark用于数据处理的关键组件的优缺点。

Get Spark机器学习实战 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.