Spark SQL 教程翻译Datasets and DataFrames 概述

Posted 顧棟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark SQL 教程翻译Datasets and DataFrames 概述相关的知识,希望对你有一定的参考价值。

Spark SQL, DataFrames and Datasets Guide

原文地址 https://spark.apache.org/docs/2.3.3/sql-programming-guide.html#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 概述的主要内容,如果未能解决你的问题,请参考以下文章

Spark SQL 教程翻译 Data Sources

[Spark2.0]Spark SQL, DataFrames 和Datasets指南

Spark SQL, DataFrames and Datasets 指南

Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

Spark SQL数据源

TensorFlow.org教程笔记 DataSets 快速入门