2 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
創(chuàng)建 SQLContext
Spark SQL 中所有相關(guān)功能的入口點(diǎn)是 SQLContext 類或者它的子類, 創(chuàng)建一個 SQLContext 的所有需要僅僅是一個 SparkContext。
使用 Scala 創(chuàng)建方式如下:
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 創(chuàng)建方式如下:
JavaSparkContext sc = ...; // An existing JavaSparkContext.
SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);
使用 Python 創(chuàng)建方式如下:
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
除了一個基本的 SQLContext,你也能夠創(chuàng)建一個 HiveContext,它支持基本 SQLContext 所支持功能的一個超集。它的額外的功能包括用更完整的 HiveQL 分析器寫查詢?nèi)ピL問 HiveUDFs 的能力、 從 Hive 表讀取數(shù)據(jù)的能力。用 HiveContext 你不需要一個已經(jīng)存在的 Hive 開啟,SQLContext 可用的數(shù)據(jù)源對 HiveContext 也可用。HiveContext 分開打包是為了避免在 Spark 構(gòu)建時包含了所有 的 Hive 依賴。如果對你的應(yīng)用程序來說,這些依賴不存在問題,Spark 1.3 推薦使用 HiveContext。以后的穩(wěn)定版本將專注于為 SQLContext 提供與 HiveContext 等價的功能。
用來解析查詢語句的特定 SQL 變種語言可以通過 spark.sql.dialect 選項(xiàng)來選擇。這個參數(shù)可以通過兩種方式改變,一種方式是通過 setConf 方法設(shè)定,另一種方式是在 SQL 命令中通過 SET key=value 來設(shè)定。對于 SQLContext,唯一可用的方言是 “sql”,它是 Spark SQL 提供的一個簡單的 SQL 解析器。在 HiveContext 中,雖然也支持”sql”,但默認(rèn)的方言是 “hiveql”,這是因?yàn)?HiveQL 解析器更完整。
- 2 回答
- 0 關(guān)注
- 925 瀏覽
添加回答
舉報(bào)