HiveContext和SQLContext

使用SparkSQL时注意HiveContext和SQLContext的关系:

见源码:

class HiveContext(sc : org.apache.spark.SparkContext) extends org.apache.spark.sql.SQLContext with org.apache.spark.Logging {

SqlContext: 应该是对应spark-sql这个project; 与hive解耦,不支持hql查询;
HiveContext:应该是对应spark-hive这个项目; 与hive有部分耦合, 支持hql,是SqlContext的子类,也就是说兼容SqlContext;

如果在项目中同时使用


val sc = new SparkContext(sparkConf)
//Initialize sqlContext
val sqlContext = new SQLContext(sc)
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
则会出问题,此时只需使用HiveContext即可。






你可能感兴趣的:(spark)