您的位置:首页 > 数据库

Spark SQL 编程API入门系列之SparkSQL的入口

2017-06-05 14:33 555 查看
  不多说,直接上干货!

[b]SparkSQL的入口:SQLContext[/b]

SQLContext是SparkSQL的入口

val sc: SparkContext

val sqlContext = new org.apache.spark.sql.SQLContext(sc)

import sqlContext._ //导?入各种sql操作的?口与各种隐式转换

[b]SparkSQL的入口: HiveContext[/b]

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。

[b]SQLContext vs HiveContext[/b]

  SQLContext现在只支持SQL语法解析器(SQL-92语法)

  val sc: SparkContext

  val sqlContext = new org.apache.spark.sql.SQLContext(sc)

  import sqlContext._ //导入各种sql操作的与各种隐式转换

[b]SQLContext vs HiveContext[/b]

  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的各种依赖包加进来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐