zoukankan      html  css  js  c++  java
  • 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的各种依赖包加进来。

     

     

     

     

  • 相关阅读:
    Java——多线程常见面试题
    Java——线程定时器
    Java——多线程练习
    Java——线程池
    Java——线程间通信
    Java——线程死锁问题
    Java——线程同步
    Java多线程安全问题
    Java——多线程面试问题
    Java——多线程小例子
  • 原文地址:https://www.cnblogs.com/zlslch/p/6944807.html
Copyright © 2011-2022 走看看