好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SparkSession、SparkContext、SQLContext和HiveContext之间

SQLContext 是什么?

SQLContext是通往SparkSQL的入口。下面是如何使用SparkContext创建SQLContext。

  // sc is an existing SparkContext.
 val sqlContext =  new org.apache.spark.sql.SQLContext(sc)
    

一旦有了SQLContext,就可以开始处理DataFrame、DataSet等。

HiveContext 是什么?

HiveContext是通往hive入口。
HiveContext具有SQLContext的所有功能。
实际上,如果查看API文档,就会发现HiveContext扩展了SQLContext,这意味着它支持SQLContext支持的功能以及更多(Hive特定的功能)

 public   class  HiveContext  extends  SQLContext  implements  Logging
        

下面是如何使用SparkContext获得HiveContext

  // sc is an existing SparkContext.
 val sqlContext =  new org.apache.spark.sql.hive.HiveContext(sc)
    
SparkSession 是什么?

SparkSession是在Spark 2.0中引入的,
它使开发人员可以轻松地使用它,这样我们就不用担心不同的上下文,
并简化了对不同上下文的访问。通过访问SparkSession,我们可以自动访问SparkContext。

下面是如何创建一个SparkSession

 val spark = SparkSession
 .builder()
 .appName( "hirw-test")
 .config( "spark.some.config.option",  "some-value")
 .getOrCreate()
        

SparkSession现在是Spark的新入口点,它替换了旧的SQLContext和HiveContext。注意,保留旧的SQLContext和HiveContext是为了向后兼容。

一旦我们访问了SparkSession,我们就可以开始使用DataFrame和Dataset了。

下面是我们如何使用Hive支持创建SparkSession。

 val spark = SparkSession
 .builder()
 .appName( "hirw-hive-test")
 .config( "spark.sql.warehouse.dir", warehouseLocation)
 .enableHiveSupport()
 .getOrCreate()
        

因此,如果您正在使用Spark 2.0或更高版本,建议使用SparkSession。

 轉載:https://HdhCmsTestcnblogs测试数据/lillcol/p/11233456.html

   

SparkSession、SparkContext、SQLContext和HiveContext之间的区别。

标签:sql   har   nbsp   https   app   using   访问   xtend   code   

查看更多关于SparkSession、SparkContext、SQLContext和HiveContext之间的详细内容...

  阅读:26次