首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

SQL 是 Spark 处理结构化数据的一个模块.与基础的 Spark RDD API 不同, Spark SQL 提供了查询结构化数据及计算结果等信息的接口.在内部, Spark SQL 使用这个额外的信息去执行额外的优化...DataFrames 可以从大量的 sources 中构造出来, 比如: 结构化的文本文件, Hive中的表, 外部数据库, 或者已经存在的 RDDs....由于这个原因, 当将 Hive metastore Parquet 表转换为 Spark SQL Parquet 表时, 我们必须调整 metastore schema 与 Parquet schema...一些数据库,例如 H2,将所有名称转换为大写。 您需要使用大写字母来引用 Spark SQL 中的这些名称。 性能调优 对于某些工作负载,可以通过缓存内存中的数据或打开一些实验选项来提高性能。...这主要是因为 DataFrames 不再从 RDD 直接继承,而是由 RDDS 自己来实现这些功能。DataFrames 仍然可以通过调用 .rdd 方法转换为 RDDS 。

26.1K80

DataFrame和Dataset简介

一、Spark SQL简介 Spark SQL 是 Spark 中的一个子模块,主要用于操作结构化数据。...它具有以下特点: 能够将 SQL 查询与 Spark 程序无缝混合,允许您使用 SQL 或 DataFrame API 对结构化数据进行查询; 支持多种开发语言; 支持多达上百种的外部数据源,包括 Hive...如果你想使用函数式编程而不是 DataFrame API,则使用 RDDs; 如果你的数据是非结构化的 (比如流媒体或者字符流),则使用 RDDs, 如果你的数据是结构化的 (如 RDBMS 中的数据)...在 Spark 2.0 后,为了方便开发者,Spark 将 DataFrame 和 Dataset 的 API 融合到一起,提供了结构化的 API(Structured API),即用户可以通过一套标准的...,Spark 会将其转换为一个逻辑计划; Spark 将此逻辑计划转换为物理计划,同时进行代码优化; Spark 然后在集群上执行这个物理计划 (基于 RDD 操作) 。

2.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    了解Spark SQL,DataFrame和数据集

    Spark SQL 它是一个用于结构化数据处理的Spark模块,它允许你编写更少的代码来完成任务,并且在底层,它可以智能地执行优化。SparkSQL模块由两个主要部分组成。...我们将只讨论第一部分,即结构API的表示,称为DataFrames和DataSet,它们定义了用于处理结构化数据的高级API。...Spark SQL模块的一个很酷的功能是能够执行SQL查询来执行数据处理,查询的结果将作为数据集或数据框返回。...以下代码将完全使用Spark 2.x和Scala 2.11 从RDDs创建DataFrames val rdd = sc.parallelize(1 to 10).map(x => (x, x * x)...· DataSet有称为编码器的帮助程序,它是智能和高效的编码实用程序,可以将每个用户定义的对象内的数据转换为紧凑的二进制格式。

    1.4K20

    spark 2.0.1(技术预览版)的编译与测试(附一些新特性的介绍)

    当然从目前一些介绍来看,这个升级版本在SQL查询方面将更加强大。...最终的Apache Spark 2.0发布还有几个星期,其新特性主要如下: 更简单:SQL和简化的API Spark 2.0依然拥有标准的SQL支持和统一的DataFrame/Dataset API...但我们扩展了Spark的SQL 性能,引进了一个新的ANSI SQL解析器并支持子查询。Spark 2.0可以运行所有的99 TPC-DS的查询,这需要很多的SQL:2003功能。...作为一个编译器 Spark 2.0将拥有更快的速度,下图是Spark 2.0和Spark 1.6的速度对比图: ?...更智能:结构化数据流 通过在DataFrames之上构建持久化的应用程序来不断简化数据流,允许我们统一数据流,支持交互和批量查询。

    58560

    Pyspark学习笔记(六)DataFrame简介

    DataFrames可以从多种来源构建,例如:结构化数据文件、Hive中的表、外部数据库或现有RDD.   DataFrame 首先在Spark 1.3 版中引入,以克服Spark RDD 的局限性。...Spark DataFrames 是数据点的分布式集合,但在这里,数据被组织到命名列中。DataFrames 可以将数据读取和写入格式, 如 CSV、JSON、AVRO、HDFS 和 HIVE表。...开发人员需要自己编写优化的代码 使用catalyst optimizer进行优化 使用catalyst optimizer进行优化 图式投影 需要手动定义模式 将自动查找数据集的架构 还将使用SQL引擎自动查找数据集的架构...,请使用DataFrame; 如果 需要高级表达式、筛选器、映射、聚合、平均值、SUM、SQL查询、列式访问和对半结构化数据的lambda函数的使用,请使用DataFrame; 如果您希望在编译时具有更高的类型安全性...,则需要类型化JVM对象,利用催化剂优化,并从Tungsten高效的代码生成中获益,请使用DataSet; 如果您希望跨spark库统一和简化API,请使用DataFrame;如果您是R用户,请使用DataFrames

    2.1K20

    Spark(1.6.1) Sql 编程指南+实战案例分析

    首先看看从官网学习后总结的一个思维导图 概述(Overview) Spark SQL是Spark的一个模块,用于结构化数据处理。...它提供了一个编程的抽象被称为DataFrames,也可以作为分布式SQL查询引擎。 开始Spark SQL Spark SQL中所有功能的入口点是SQLContext类,或者它子类中的一个。...函数使应用可以以编程方式运行SQL查询,并且将结果以DataFrame形式返回。...具体案例见后面 Spark SQL支持两种不同的方法,用于将存在的RDDs转换成DataFrames。第一种方法使用反射来推断包含特定类型的对象的RDD的模式。...这个RDD可以隐式地转换为DataFrame,然后注册成表, 表可以在后续SQL语句中使用Spark SQL中的Scala接口支持自动地将包含JavaBeans类的RDD转换成DataFrame。

    2.4K80

    PySpark SQL 相关知识介绍

    您还可以将分析报告保存到许多系统和文件格式。 7.1 DataFrames DataFrames是一种抽象,类似于关系数据库系统中的表。它们由指定的列组成。...DataFrames是行对象的集合,这些对象在PySpark SQL中定义。DataFrames也由指定的列对象组成。用户知道表格形式的模式,因此很容易对数据流进行操作。...7.3 Structured Streaming 我们可以使用结构化流框架(PySpark SQL的包装器)进行流数据分析。...我们可以使用结构化流以类似的方式对流数据执行分析,就像我们使用PySpark SQL对静态数据执行批处理分析一样。正如Spark流模块对小批执行流操作一样,结构化流引擎也对小批执行流操作。...结构化流最好的部分是它使用了类似于PySpark SQL的API。因此,学习曲线很高。对数据流的操作进行优化,并以类似的方式在性能上下文中优化结构化流API。

    3.9K40

    Structured Streaming 编程指南

    欢迎关注我的微信公众号:FunnyBigData 概述 Structured Streaming 是一个基于 Spark SQL 引擎的、可扩展的且支持容错的流处理引擎。...你可以像表达静态数据上的批处理计算一样表达流计算。Spark SQL 引擎将随着流式数据的持续到达而持续运行,并不断更新结果。...你将使用类似对于静态表的批处理方式来表达流计算,然后 Spark 以在无限表上的增量计算来运行。 基本概念 将输入的流数据当做一张 “输入表”。把每一条到达的数据作为输入表的新的一行来追加。 ?...某些操作,比如 map、flatMap 等,需要在编译时就知道类型,这时你可以将 DataFrame 转换为 Dataset(使用与静态相同的方法)。...你也可以通过将spark.sql.streaming.schemaInference 设置为 true 来重新启用 schema 推断。

    2K20

    Spark 3.0如何提高SQL工作负载的性能

    这是启用AQE之前和之后第一个TPC-DS查询的执行结果: 动态将排序合并联接转换为广播联接 当任何联接端的运行时统计信息小于广播哈希联接阈值时,AQE会将排序合并联接转换为广播哈希联接。...spark.sql.adaptive.coalescePartitions.enabled 设置为true ,Spark将根据以下内容合并连续的shuffle分区 设置为spark.sql.adaptive.advisoryPartitionSizeInBytes...因此,倾斜联接优化将使用spark.sql.adaptive.advisoryPartitionSizeInBytes指定的值将分区A0划分为子分区,并将它们中的每一个联接到表B的对应分区B0。...静态数据集部分受到流技术的挑战:Spark团队首先创建了一个基于RDD的笨拙设计,然后提出了一个涉及DataFrames的更好的解决方案。...静态计划部分受到SQL和Adaptive Query Execution框架的挑战,从某种意义上说,结构化流对于初始流库是什么:它应该一直是一个优雅的解决方案。

    1.5K20

    一文读懂Apache Spark

    Spark流将批处理的Apache Spark概念扩展到流中,通过将流分解成连续的一系列微批量,然后可以使用Apache Spark API进行操作。...结构化流 结构化流Structured Streaming(在Spark 2.x中添加)将会改进Spark SQL对Spark Core API的优化:更高级别的API和更容易编写应用程序的抽象。...结构化流的所有查询都经过了Catalyst查询优化器,甚至可以以交互的方式运行,允许用户对实时流数据执行SQL查询。...历史版本Spark流媒体api将继续得到支持,但项目建议将其移植到结构化的流媒体上,因为新方法使得编写和维护流代码更容易忍受。 Apache Spark的下一步如何发展?...更妙的是,因为结构化流是在Spark SQL引擎之上构建的,因此利用这种新的流媒体技术将不需要任何代码更改。 除了提高流处理性能,Apache Spark还将通过深度学习管道增加对深度学习的支持。

    1.8K00

    Spark的Streaming和Spark的SQL简单入门学习

    3.1、Discretized Stream是Spark Streaming的基础抽象,代表持续性的数据流和经过各种Spark原语操作后的结果数据流。...Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。 b、为什么要学习Spark SQL?   ...所有Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快! c、Spark的特点:   易整合、统一的数据访问方式、兼容Hive、标准的数据连接。...由于与R和Pandas的DataFrame类似,Spark DataFrame很好地继承了传统单机数据分析的开发体验。 ? 2、创建DataFrames?...在Spark SQL中SQLContext是创建DataFrames和执行SQL的入口,在spark-1.5.2中已经内置了一个sqlContext: 1.在本地创建一个文件,有三列,分别是id、name

    95290
    领券