Azure Databricks 上的 PySpark

本文介绍 Databricks 上的 PySpark(适用于 Spark 的 Python API)的基础知识。

Azure Databricks 基于 Apache Spark 构建,它是用于大数据和机器学习的统一分析引擎。 PySpark 可帮助你使用 Python 编程语言与 Apache Spark 进行交互,这是一种易于学习、实现和维护的灵活语言。 它还为 Databricks 中的数据可视化提供了许多选项。 PySpark 结合了 Python 和 Apache Spark 的强大功能。

API 和库

与 Spark 的所有 API 一样,PySpark 配备了许多可以实现和支持强大功能的 API 和库,包括:

  • 通过 Spark SQL 和 DataFrame 使用关系查询处理结构化数据。 Spark SQL 允许将 SQL 查询与 Spark 程序混合使用。 借助 Spark DataFrame,可以使用 Python 和 SQL 高效读取、写入、转换和分析数据,这意味着始终可以利用 Spark 的全部功能。 请参阅 PySpark 入门
  • 使用结构化流式处理对流进行可缩放处理。 可以像对静态数据表达批量计算一样表达流式处理计算,并且 Spark SQL 引擎会随着流数据的不断到达以增量方式连续运行它。 请参阅结构化流概述
  • 使用 Spark 上的 Pandas API 处理 Apache Spark 的 Pandas 数据结构和数据分析工具。 通过 Spark 上的 Pandas API,可以借助适用于 pandas 的单个代码库(测试、较小的数据集)和适用于 Spark 的单个代码库(生产、分布式数据集),通过跨多个节点运行 pandas 工作负载将其缩放为任意大小。 请参阅 Spark 上的 Pandas API 概述
  • 使用机器学习 (MLLib) 的机器学习算法。 MLlib 是一个基于 Spark 构建的可缩放机器学习库,它提供一组统一的 API,可帮助用户创建和优化实际的机器学习管道。 请参阅机器学习库概述
  • 使用 GraphX 进行图形和图形并行计算。 GraphX 引入了每个顶点和边都附加了属性的新有向多重图,并公开了图形计算操作符、算法和生成器,以简化图形分析任务。 请参阅 GraphX 概述

DataFrame、转换和延迟计算

Apache Spark DataFrame 是组织成命名列的数据集。 它们是具有不同类型的列的二维标记数据结构。 DataFrame 提供了一组丰富的函数,支持你高效解决常见的数据分析问题,并且可以使用内置方法轻松转换数据,以对数据进行排序、筛选和聚合。

Apache Spark 的基础是两类数据处理操作:转换和动作。 动作操作会返回一个值,例如 countfirstcollect。 转换操作(例如 filtergroupBy)会返回 DataFrame,但它在动作触发数据帧之前不会执行。 这称为延迟计算。 通过延迟计算,还可以链接多个操作,因为 Spark 以延迟方式处理其执行,而不是在定义它们后立即执行。

Spark 教程

除了介绍如何使用 DataFrame 加载和转换数据的 Apache Spark 教程以外,Apache Spark 文档还提供了用于学习 Spark 的快速入门和指南,其中包括以下文章:

PySpark 参考

Azure Databricks 会维护自己的 PySpark API 版本和相应的参考,可在以下部分找到: