概述

本教程模块帮助您快速开始使用Apache Spark。我们将简要讨论一些关键概念,这样您就可以开始编写第一个Apache Spark作业了。在本指南的其他教程模块中,您将有机会深入了解您所选择的主题。

在本教程模块中,您将学习:

我们还提供样的笔记本您可以导入它来访问和运行模块中包含的所有代码示例。

火花接口

您应该了解三个关键的Spark接口。

弹性分布式数据集
Apache Spark的第一个抽象是RDD。它是一个到数据对象序列的接口,该数据对象序列由一个或多个类型组成,这些类型分布在一个机器集合(集群)中。rdd可以以多种方式创建,并且是可用的“最低级别”API。虽然这是Apache Spark的原始数据结构,但您应该关注DataFrame API,它是RDD功能的超集。RDD API支持Java、Python和Scala语言。

DataFrame
它们在概念上类似于你可能在pandas Python库和R语言中熟悉的DataFrame。DataFrame API支持Java、Python、R和Scala语言。

数据集
DataFrame和RDD的组合。它提供了rdd中可用的类型化接口,同时提供了DataFrame的便利性。数据集API支持Java和Scala语言。

在许多情况下,特别是在数据框架和数据集中嵌入了性能优化,将没有必要使用rdd。但是理解RDD抽象是很重要的,因为:

  • RDD是底层基础设施,它允许Spark运行得如此之快,并提供数据沿袭。
  • 如果您正在深入Spark的更高级组件,则可能需要使用rdd。
  • Spark UI中的可视化引用rdd。

当您开发Spark应用程序时,您通常使用DataFrames而且数据集

编写您的第一个Apache Spark作业

要编写第一个Apache Spark作业,需要将代码添加到Databricks笔记本的单元格中。本例使用Python。有关详细信息,还可以参考Apache Spark快速入门指南

中的文件夹的内容Databricks文件系统

#查看文件系统显示(dbutils.fs.ls("/ databicks -datasets/samples/docs/"))

DBFS-readme-sm

下一个命令使用火花,SparkSession可在每个笔记本上阅读README.md文本文件,并创建一个名为文本文件

textFile = spark.read.text("/ databicks -datasets/samples/docs/README.md")

要计算文本文件的行数,请应用数据帧的动作:

textFile.count ()

您可能会注意到,第二个命令(读取文本文件)不生成任何输出,而第三个命令(执行,。这样做的原因是第一个命令是a转换而第二个是行动.转换是懒惰的并且只在运行操作时运行。这允许Spark优化性能(例如,在连接之前运行过滤器),而不是连续运行命令。有关转换和操作的完整列表,请参阅Apache Spark Programming Guide:转换而且行动

砖的数据集

Databricks包括各种数据集在工作区中,您可以使用它来学习Spark或测试算法。你会在入门指南中看到这些。数据集可在/ databricks-datasets文件夹中。

我们还提供样的笔记本您可以导入它来访问和运行模块中包含的所有代码示例。