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的各种依赖包加进来。

 

 

 

 

原文地址:https://www.cnblogs.com/zlslch/p/6944807.html