第3章 外部数据源

Spark的一个优点就在于它提供一个运行时以支持多种不同格式的数据源。

本章我们将会连接不同的数据源。在本章中,我们将会介绍以下内容。

  • 从本地文件系统加载数据。
  • 从HDFS加载数据。
  • 从HDFS加载自定义输入格式的数据。
  • 从Amazon S3加载数据。
  • 从Apache Cassandra加载数据。
  • 从关系型数据库加载数据。

Spark为大数据提供一个统一的运行时。HDFS,即Hadoop文件系统,是Spark最常用的存储平台,因为它提供商用硬件上的非结构化和半结构化数据的高性价比存储。Spark不仅可用于HDFS,也可用于任何支持Hadoop的存储。

支持Hadoop的存储意味着可以使用Hadoop的InputFormatOutputFormat接口的存储格式。InputFormat负责使用输入数据创建InputSplits并进一步将其分割为记录。OutputFormat负责写入存储。

我们将从写入到本地文件系统开始,接着是从HDFS载入数据。在从HDFS载入数据的教程中,我们将会介绍最通用的文件格式:普通文本文件。接着我们将会介绍如何在Spark中使用任意InputFormat接口载入数据。我们还会探索如何在Amazon S3这个云存储平台先锋中载入数据。我们将会探索从Apache Cassandra这个NoSQL数据库中载入数据。最后,我们将会探索从关系型数据库载入数据。

由于磁盘存储空间大小的限制以及缺少分布式特征,本地文件系统并不是存储大数据的好选择,但是在技术上来说可以在分布式系统中使用本地文件系统加载数据。不过,之后所使用到的文件或目录都必须在每个节点上都可达。

请注意,使用该功能加载端数据不是个好主意。Spark有一个广播变量特征可用于加载端数据,我们将在接下来的章节中讨论。 ...

Get Spark Cookbook (中文版) 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.