首页 首页 大数据 大数据入门 查看内容

Spark SQL是什么,提供的主要功能有哪三种?

木马童年 2018-10-13 19:18 66 0

Spark SQL允许大家在Python、Java以及Scala中使用数据帧;利用多种结构化格式读取并写入数据;通过SQL进行大数据查询。SparkSQL属于Spark用于处理结构化与半结构化数据的接口。结构化数据是指那些拥有一定模式的数据, ...

Spark SQL允许大家在Python、Java以及Scala中使用数据帧;利用多种结构化格式读取并写入数据;通过SQL进行大数据查询。

Spark SQL属于Spark用于处理结构化与半结构化数据的接口。结构化数据是指那些拥有一定模式的数据,包括JSON、Hive Tables以及Parquet。模式意味着每条记录都拥有一套已知字段组。半结构化数据则代表着模式与数据之间不存在明确的区分。

  Spark SQL 究竟是何方神圣?

Spark SQL提供三种主要功能以使用结构化及半结构化数据:

1. 在Python、Java与Scala中提供DataFrame抽象以简化结构化数据集的处理方式。DataFrame类似于关系数据库中的表。

2. 它能够对多种结构化格式进行数据读取及写入(例如JSON、Hive Tables以及Parquet)。

3. 允许大家利用SQL进行数据查询,适用范围包括Spark程序之内以及通过标准数据库连接器(JDBC/ODBC)接入Spark SQL的外部工具,例如Tableau等商务智能工具。

链接

将Spark SQL纳入应用,需要提供额外的库关联性。Spark SQL在构建中可选择支持或不支持Apache Hive。在以二进制方式下载Spark时,其默认构建为Hive支持模式。

在应用中使用Spark SQL

Spark SQL最适合用于Spark应用之内。通过这种方式,我们能够轻松将数据加载与数据查询进行结合,同时将其与Python、Java或者Scala协作使用。

基本查询示例

要查询一套表,我们需要在HiveContext或者SQLContext上调用sql()方法。

Scala代码示例:从JSON加载客户数据:

val customers = sqlContext.jsonFile("customers.json") customers.registerTempTable("customers") val firstCityState = sqlContext.sql("SELECT first_name, address.city, address.state FROM customers LIMIT 10")

DataFrames

DataFrames类似于关系数据库中的表。DataFrame事实上属于Row对象的一条RDD。一个DataFrame还能够识别出每一行中的模式。由于能够识别数据模式,DataFrames的数据存储效率比原生RDD更高。

缓存

Spark SQL中的缓存更为高效,这是因为DataFrame能够识别各列的类型。

数据载入及保存

Spark SQL能够原生支持多种结构化数据源,包括Hive表、JSON以及Parquet文件。

另外,Spark SQL还拥有用于集成的DataSource API。DataSource API所能够实现的集成对象包括Avro、Apache HBase、Elasticsearch以及Canssandra等等。完整的支持列表可参阅http://spark-packages.org。

JDBC连接

Spark SQL提供JDBC连接,其能够用于同Tableau等商务智能工具的对接。

用户定义功能(简称UDF)

Spark SQL支持在Python、Java以及Scala当中注册用户定义功能,从而在SQL内部进行调用。这一能力可为SQL带来更多先进功能,帮助用户无需编码即可加以使用。

Spark SQL性能

Spark SQL的额外类型信息使其更为高效,且能够提供远超关系数据库的SQL性能。它还简化了各类条件型聚合操作,包括计算多个列的数值总和。

性能调节选项

Spark SQL当中提供多种不同性能调节选项,例如codegen、内存设置、批量大小与压缩编码等等。

总结

在多种数据处理流程当中,Spark SQL与Python、Scala或者Java代码相结合都能够带来便捷而强大的实际效果。另外,Spark SQL亦能够利用模式识别能力充分发挥该引擎的性能优势。

在不久的将来,多智时代一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏多智时代,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!

大数据 结构化数据 数据集 数据库 智能工具 数据存储
0
为您推荐
对于大数据开发的学习,最经典的学习路线是什么?

对于大数据开发的学习,最经典的学习路线是什么?

对于现代社会,大数据开发的重要性不言而喻,通过大量的数据处理、分析获取有价值的信…...

大数据时代,主要需要什么类型的人才?

大数据时代,主要需要什么类型的人才?

什么是大数据,大数据是主要指的是,无法在可承受的时间范围内用常规软件工具进行捕捉…...

什么样的人才是大数据人才呢?我们应该怎么定义和分类?

什么样的人才是大数据人才呢?我们应该怎么定义和分类

在未来世界,国家之间、区域之间甚至是公司之间的大数据人才的争夺战,将是愈演愈烈的…...

数据科学,数据分析和机器学习之间,有什么本质区别?

数据科学,数据分析和机器学习之间,有什么本质区别?

我们都知道机器学习,数据科学和数据分析是未来的发展方向。有些公司不仅利用大数据帮…...

大数据技术怎么学习,在学习大数据之前,需要具备什么基础?

大数据技术怎么学习,在学习大数据之前,需要具备什么

  大数据又称黑暗数据,是指人脑无法处理的海量数据聚合成的信息资产,在民生、IT、…...

大数据现在处于什么阶段,入行大数据,需要学习哪些基础知识?

大数据现在处于什么阶段,入行大数据,需要学习哪些基

大数据的发展历程总体上可以划分为三个重要阶段,萌芽期、成熟期和大规模应用期…...