SparkSQL和HiveSQL是两种常用的大数据处理语言,它们都是基于SQL语言的,但也有一些显著的差异。
首先,SparkSQL是基于内存的,而HiveSQL是基于磁盘的。这意味着SparkSQL可以更快地处理数据,因为它不需要将数据加载到磁盘中才能进行处理。此外,SparkSQL可以使用内存中的数据进行并行处理,而HiveSQL则不能。
其次,SparkSQL可以使用RDDs作为输入数据源(即Resilient Distributed Datasets),而HiveSQL则不能。RDDs是一种可以在集群上并行处理的数据集合。因此,使用SparkSQL可以大大加快数据处理速度。
此外,Spark SQL也具有强大的优化功能。它可以根据特定情况对代码进行优化(例如将代码重新组合成一条语句或将代码重新分割成几条语句来减少IO开销)。而Hive SQL则不具有这样的优化功能。
例如: SELECT * FROM table1 // Hive SQL SELECT * FROM table1 WHERE col1 = 'value' // Spark SQL
Spark SQL允许Spark执行用SQL, HiveQL或者Scala表示的关系查询。这个模块的核心是一个新类型的RDD-SchemaRDD。SchemaRDDs由行对象组成,行对象拥有一个模式(scheme)来描述行中每一列的数据类型。SchemaRDD与关系型数据库中的表很相似。可以通过存在的RDD、一个Parquet文件、一个JSON数据库或者对存储在Apache Hive中的数据执行HiveSQL查询中创建。
本章的所有例子都利用了Spark分布式系统中的样本数据,可以在spark-shell
中运行它们。
数据源
Hive表
Spark 编程指南简体中文版本书出处:http://endymecy.gitbooks.io/spark-programming-guide-zh-cn/content/从这里开始你能够从sp...
在Neo4j数据中,当我们在Neo4j DATA浏览器中执行MATCH + RETURN命令以查看UI视图中的数据时,通过使用它们的Id属性显示节点和/或...
MongoDB 教程 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方...