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

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

木马童年 2018-10-13 19:18 43 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
为您推荐
IE6浏览器全球份额占4.4% 在华份额仍高达22%

IE6浏览器全球份额占4.4% 在华份额仍高达22

北京时间4月9日早间消息,在Windows XP昨天正式退役时,与之一同退出历史舞台的还有曾…...

Hadoop能够风行十年吗

Hadoop能够风行十年吗

Hadoop技术已经无处不在。不管是好是坏,Hadoop已经成为大数据的代名词。短短几年间,…...

优秀的BI 架构师应具备怎样的素质?

优秀的BI 架构师应具备怎样的素质?

一个优秀的企业级 BI 架构师应该需要具备怎么样的素质? 第一,我所理解的BI架构师不…...

医疗行业大数据应用的三个案例

医疗行业大数据应用的三个案例

文章从华大基因推出肿瘤基因检测服务、大数据预测早产儿病情、广东省人民医院利用大数…...

Hadoop Yarn内存资源隔离实现原理-基于线程监控的内存隔离方案

Hadoop Yarn内存资源隔离实现原理-基于线程

注:Hadoop Yarn内存资源隔离实现原理-基于线程监控的内存隔离方案,本文以 hadoop-2.…...

IT与云计算技术还差十万八千里

IT与云计算技术还差十万八千里

随着对应用程序,设备及其他所产生的广泛影响,云已经不仅仅是一个IT项目或者战略。你…...