Spark SQL 教程翻译Datasets and DataFrames 概述
Posted 顧棟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark SQL 教程翻译Datasets and DataFrames 概述相关的知识,希望对你有一定的参考价值。
Spark SQL, DataFrames and Datasets Guide
概述
Spark SQL 是一个用于结构化数据处理的 Spark 模块。 与基本的 Spark RDD API 不同,Spark SQL 提供的接口为 Spark 提供了有关数据结构和正在执行的计算的更多信息。 在内部,Spark SQL 使用这些额外的信息来执行额外的优化。 有多种与 Spark SQL 交互的方式,包括 SQL 和数据集 API。 计算结果时,使用相同的执行引擎,与您使用哪种 API/语言来表达计算无关。 这种统一意味着开发人员可以轻松地在不同的 API 之间来回切换,这提供了表达给定转换的最自然的方式。
此页面上的所有示例都使用 Spark 发行版中包含的示例数据,并且可以在 spark-shell、pyspark shell 或 sparkR shell 中运行。
SQL
Spark SQL 的一种用途是执行 SQL 查询。 Spark SQL 也可用于从现有的 Hive 安装中读取数据。 有关如何配置此功能的更多信息,请参阅 Hive 表部分。 从另一种编程语言中运行 SQL 时,结果将作为数据集/数据帧返回。 您还可以使用命令行或通过 JDBC/ODBC 与 SQL 界面进行交互。
Datasets and DataFrames
数据集(Dataset)是数据的分布式集合。 Dataset 是 Spark 1.6 中添加的一个新接口,它提供了 RDD 的优点(强类型、使用强大 lambda 函数的能力)以及 Spark SQL 优化执行引擎的优点。数据集可以从 JVM 对象构建,然后使用函数转换(map、flatMap、filter 等)进行操作。数据集 API 在 Scala 和 Java 中可用。 Python 不支持 Dataset API。但是由于 Python 的动态特性,Dataset API 的许多好处已经可用(即您可以自然地通过名称访问行的字段 row.columnName)。 R 的情况类似。
DataFrame 是组织成命名列的数据集。它在概念上等同于关系数据库中的表或 R/Python 中的数据框,但在幕后进行了更丰富的优化。 DataFrames 可以从多种来源构建,例如:结构化数据文件、Hive 中的表、外部数据库或现有 RDD。 DataFrame API 在 Scala、Java、Python 和 R 中可用。在 Scala 和 Java 中,DataFrame 由行数据集表示。在 Scala API 中,DataFrame 只是 Dataset[Row] 的类型别名。而在 Java API 中,用户需要使用 Dataset<Row>
来表示一个 DataFrame。
在本文档中,我们经常将 Scala/Java 行数据集称为数据帧(DataFrames)。
以上是关于Spark SQL 教程翻译Datasets and DataFrames 概述的主要内容,如果未能解决你的问题,请参考以下文章
[Spark2.0]Spark SQL, DataFrames 和Datasets指南
Spark SQL, DataFrames and Datasets 指南
Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN