1 回答

TA貢獻1784條經驗 獲得超8個贊
創建 SQLContext
Spark SQL 中所有相關功能的入口點是 SQLContext 類或者它的子類, 創建一個 SQLContext 的所有需要僅僅是一個 SparkContext。
使用 Scala 創建方式如下:
val sc: SparkContext // An existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
// this is used to implicitly convert an RDD to a DataFrame.
import sqlContext.implicits._
使用 Java 創建方式如下:
JavaSparkContext sc = ...; // An existing JavaSparkContext.
SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);
使用 Python 創建方式如下:
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
除了一個基本的 SQLContext,你也能夠創建一個 HiveContext,它支持基本 SQLContext 所支持功能的一個超集。它的額外的功能包括用更完整的 HiveQL 分析器寫查詢去訪問 HiveUDFs 的能力、 從 Hive 表讀取數據的能力。用 HiveContext 你不需要一個已經存在的 Hive 開啟,SQLContext 可用的數據源對 HiveContext 也可用。HiveContext 分開打包是為了避免在 Spark 構建時包含了所有 的 Hive 依賴。如果對你的應用程序來說,這些依賴不存在問題,Spark 1.3 推薦使用 HiveContext。以后的穩定版本將專注于為 SQLContext 提供與 HiveContext 等價的功能。
用來解析查詢語句的特定 SQL 變種語言可以通過 spark.sql.dialect 選項來選擇。這個參數可以通過兩種方式改變,一種方式是通過 setConf 方法設定,另一種方式是在 SQL 命令中通過 SET key=value 來設定。對于 SQLContext,唯一可用的方言是 “sql”,它是 Spark SQL 提供的一個簡單的 SQL 解析器。在 HiveContext 中,雖然也支持”sql”,但默認的方言是 “hiveql”,這是因為 HiveQL 解析器更完整。
- 1 回答
- 0 關注
- 756 瀏覽
添加回答
舉報