Spark SQL開始

2018-11-26 16:32 更新

Spark SQL開始

Spark中所有相關(guān)功能的入口點(diǎn)是SQLContext類或者它的子類,創(chuàng)建一個(gè)SQLContext的所有需要僅僅是一個(gè)SparkContext。

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

// createSchemaRDD is used to implicitly convert an RDD to a SchemaRDD.
import sqlContext.createSchemaRDD

除了一個(gè)基本的SQLContext,你也能夠創(chuàng)建一個(gè)HiveContext,它支持基本SQLContext所支持功能的一個(gè)超集。它的額外的功能包括用更完整的HiveQL分析器寫查詢?nèi)ピL問HiveUDFs的能力、從Hive表讀取數(shù)據(jù)的能力。用HiveContext你不需要一個(gè)已經(jīng)存在的Hive開啟,SQLContext可用的數(shù)據(jù)源對(duì)HiveContext也可用。HiveContext分開打包是為了避免在Spark構(gòu)建時(shí)包含了所有的Hive依賴。如果對(duì)你的應(yīng)用程序來說,這些依賴不存在問題,Spark 1.2推薦使用HiveContext。以后的穩(wěn)定版本將專注于為SQLContext提供與HiveContext等價(jià)的功能。

用來解析查詢語句的特定SQL變種語言可以通過spark.sql.dialect選項(xiàng)來選擇。這個(gè)參數(shù)可以通過兩種方式改變,一種方式是通過setConf方法設(shè)定,另一種方式是在SQL命令中通過SET key=value來設(shè)定。對(duì)于SQLContext,唯一可用的方言是“sql”,它是Spark SQL提供的一個(gè)簡(jiǎn)單的SQL解析器。在HiveContext中,雖然也支持"sql",但默認(rèn)的方言是“hiveql”。這是因?yàn)镠iveQL解析器更完整。在很多用例中推薦使用“hiveql”。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)