Spark SQL 编程API入门系列之SparkSQL的入口
不多说,直接上干货!
SparkSQL的入口:SQLContext
- SQLContext是SparkSQL的入口
- val sc: SparkContext
- val sqlContext = new org.apache.spark.sql.SQLContext(sc)
- import sqlContext._ //导?入各种sql操作的?口与各种隐式转换
SparkSQL的入口: HiveContext
- HiveContext是SQLContext的子类,提供了对Hive的支持。
- complete HiveQL parser,
- access to Hive UDFs,
- the ability to read data from Hive tables,
- 编译时要包含Hive支持
mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.0 -Phive -Phive-thriftserver -DskipTests clean package
- 不需要提前安装Hive(连接已有Hive会在后续博文讲解)。
- HiveContext可以使用任何在SQLContext上可用的data source。
SQLContext vs HiveContext
SQLContext现在只支持SQL语法解析器(SQL-92语法)
val sc: SparkContext
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext._ //导入各种sql操作的与各种隐式转换
SQLContext vs HiveContext
HiveContext现在支持SQL语法解析器和HiveSQL语法解析器,默认为HiveSQL语法解析器,用户可以通过配置切换成SQL语法解析器,来运行HiveSQL不支持的语法。
使用HiveContext可以使用Hive的UDF,读写Hive表数据等Hive操作。SQLContext不可以对Hive进行操作。
Spark SQL未来的版本会不断丰富SQLContext的功能,做到SQLContext和HiveContext的功能容和,最终可能两者会统一成一个Context。
HiveContext包装了Hive的依赖包,把HiveContext单独拿出来,可以在部署基本的Spark的时候就不需要Hive的依赖包,需要使用HiveContext时再把Hive的各种依赖包加进来。
作者:大数据和人工智能躺过的坑
出处:http://www.cnblogs.com/zlslch/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【好文要顶】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!