【spark】SparkSession的API
SparkSession是一個比較重要的類,它的功能的實(shí)現(xiàn),肯定包含比較多的函數(shù),這里介紹下它包含哪些函數(shù)。
builder函數(shù)
public static SparkSession.Builder builder()
創(chuàng)建 SparkSession.Builder,初始化SparkSession.
setActiveSession函數(shù)
public static void setActiveSession(SparkSession session)
當(dāng)SparkSession.GetOrCreate()被調(diào)用,SparkSession發(fā)生變化,將會返回一個線程和它的子線程。這將會確定給定的線程接受帶有隔離會話的SparkSession,而不是全局的context。
clearActiveSession函數(shù)
public static void clearActiveSession()
清除當(dāng)前線程的Active SparkSession。然后調(diào)用GetOrCreate將會返回第一次創(chuàng)建的context代替本地線程重寫
setDefaultSession函數(shù)
public static void setDefaultSession(SparkSession session)
設(shè)置默認(rèn)的SparkSession,返回builder
clearDefaultSession函數(shù)
public static void clearDefaultSession()
清除默認(rèn)的SparkSession返回的builder
getActiveSession函數(shù)
public static scala.Option<SparkSession> getActiveSession()
由builder,返回當(dāng)前線程的Active SparkSession
getDefaultSession函數(shù)
public static scala.Option<SparkSession> getDefaultSession()
由builder,返回默認(rèn)的SparkSession
sparkContext函數(shù)
public SparkContext sparkContext()
version函數(shù)
public String version()
返回運(yùn)行應(yīng)用程序的spark版本
sharedState函數(shù)
public org.apache.spark.sql.internal.SharedState sharedState()
通過sessions共享狀態(tài),包括SparkContext, cached 數(shù)據(jù), listener, 和catalog.
這是內(nèi)部spark,接口穩(wěn)定性沒有保證
sessionState函數(shù)
public org.apache.spark.sql.internal.SessionState sessionState()
通過session隔離狀態(tài),包括:SQL 配置, 臨時表, registered 功能, 和 其它可接受的 SQLConf.?
這是內(nèi)部spark,接口穩(wěn)定性沒有保證
sqlContext函數(shù)
public SQLContext sqlContext()
session封裝以 SQLContext的形式,為了向后兼容。
conf函數(shù)
public RuntimeConfig conf()
運(yùn)行spark 配置接口
通過這個接口用戶可以設(shè)置和獲取與spark sql相關(guān)的所有Spark 和Hadoop配置.當(dāng)獲取config值,
listenerManager函數(shù)
public ExecutionListenerManager listenerManager()
用于注冊自定義QueryExecutionListeners的接口,用于偵聽執(zhí)行指標(biāo)。
experimental函數(shù)
public ExperimentalMethods experimental()
collection函數(shù),被認(rèn)為是experimental,可以用于查詢高級功能的查詢計(jì)劃程序。
udf函數(shù)
public UDFRegistration udf()
collection 函數(shù),用于用戶自定義函數(shù)
streams函數(shù)
public StreamingQueryManager streams()
返回StreamingQueryManager ,允許管理所有的StreamingQuerys?
newSession函數(shù)
public SparkSession newSession()
啟動一個獨(dú)立的 SQL 配置, temporary 表, registered 功能新的session,但共享底層的SparkContext 和緩存數(shù)據(jù).
emptyDataFrame函數(shù)
public?Dataset<Row> emptyDataFrame()
返回一個空沒有行和列的DataFrame?
emptyDataset函數(shù)
public <T> Dataset<T> emptyDataset(Encoder<T> evidence$1)
創(chuàng)建一個T類型的空的Dataset
createDataFrame函數(shù)
public <A extends scala.Product> Dataset<Row> createDataFrame(RDD<A> rdd,scala.reflect.api.TypeTags.TypeTag<A> evidence$2)
從rdd創(chuàng)建DateFrame
public Dataset<Row> createDataFrame(RDD<Row> rowRDD, StructType schema)
從RDD包含的行給定的schema,創(chuàng)建DataFrame。需要確保每行的RDD結(jié)構(gòu)匹配提供的schema,否則將會運(yùn)行異常。
public Dataset<Row> createDataFrame(JavaRDD<Row> rowRDD,StructType schema)
創(chuàng)建DataFrame從包含schema的行的RDD。確保RDD提供的每行結(jié)構(gòu)匹配提供的schema,否則運(yùn)行異常
public Dataset<Row> createDataFrame(java.util.List<Row> rows,StructType schema)
創(chuàng)建DataFrame從包含行的schema的java.util.List?
public Dataset<Row> createDataFrame(RDD<?> rdd,Class<?> beanClass)
應(yīng)用schema到Java Beans的RDD
警告:由于Java Bean中的字段沒有保證的順序,因此SELECT *查詢將以未定義的順序返回列。
public Dataset<Row> createDataFrame(JavaRDD<?> rdd, Class<?> beanClass)
應(yīng)用schema到Java Beans的RDD
警告:由于Java Bean中的字段沒有保證的順序,因此SELECT *查詢將以未定義的順序返回列。
public Dataset<Row> createDataFrame(java.util.List<?> data,Class<?> beanClass)
應(yīng)用schema到Java Bean list
警告:由于Java Bean中的字段沒有保證的順序,因此SELECT *查詢將以未定義的順序返回列。
baseRelationToDataFrame函數(shù)
public Dataset<Row> baseRelationToDataFrame(BaseRelation baseRelation)
轉(zhuǎn)換創(chuàng)建的BaseRelation,為外部數(shù)據(jù)源到DataFrame
createDataset函數(shù)
public <T> Dataset<T> createDataset(scala.collection.Seq<T> data,Encoder<T> evidence$4)
從本地給定類型的數(shù)據(jù)Seq創(chuàng)建DataSet。這個方法需要encoder (將T類型的JVM對象轉(zhuǎn)換為內(nèi)部Spark SQL表示形式)。這通常是通過從sparksession implicits自動創(chuàng)建。或則可以通過調(diào)用 Encoders上的靜態(tài)方法來顯式創(chuàng)建。
public <T> Dataset<T> createDataset(RDD<T> data,Encoder<T> evidence$5)
創(chuàng)建DataSet從給定類型的RDD。這個方法需要encoder (將T類型的JVM對象轉(zhuǎn)換為內(nèi)部Spark SQL表示形式)。通常自動創(chuàng)建通過SparkSession的implicits 或則可以通過調(diào)用 Encoders上的靜態(tài)方法來顯式創(chuàng)建。
public <T> Dataset<T> createDataset(java.util.List<T> data,Encoder<T> evidence$6)
創(chuàng)建 Dataset,對于T類型的java.util.List。這個方法需要encoder (將T類型的JVM對象轉(zhuǎn)換為內(nèi)部Spark SQL表示形式), 或則可以通過調(diào)用 Encoders上的靜態(tài)方法來顯式創(chuàng)建。
range函數(shù)
public Dataset<Long> range(long end)使用名為id的單個LongType列創(chuàng)建一個Dataset,包含元素的范圍從0到結(jié)束(不包括),步長值為1。
public Dataset<Long> range(long start,long end)
使用名為id的單個LongType列創(chuàng)建一個Dataset,包含元素的范圍從start到結(jié)束(不包括),步長值為1。
public Dataset<Long> range(long start, long end, long step)
使用名為id的單個LongType列創(chuàng)建一個Dataset,包含元素的范圍從start到結(jié)束(不包括),步長值為step。
public Dataset<Long> range(long start,long end,long step,int numPartitions)
使用名為id的單個LongType列創(chuàng)建一個Dataset,包含元素的范圍從start到結(jié)束(不包括),步長值為step,指定partition 的數(shù)目
catalog函數(shù)
public Catalog catalog()
用戶可以通過它 create, drop, alter 或則query 底層數(shù)據(jù)庫, 表, 函數(shù)等.
table函數(shù)
public Dataset<Row> table(String tableName)返回指定的table/view作為DataFrame
tableName是可以合格或則不合格的名稱。如果在數(shù)據(jù)庫中指定,它在數(shù)據(jù)庫中會識別。否則它會嘗試找到一個臨時view ,匹配到當(dāng)前數(shù)據(jù)庫的table/view,全局的臨時的數(shù)據(jù)庫view也是有效的。
sql函數(shù)
public Dataset<Row> sql(String sqlText)
使用spark執(zhí)行sql查詢,作為DataFrame返回結(jié)果。用來sql parsing,可以用spark.sql.dialect來配置
read函數(shù)
public DataFrameReader read()
返回一個DataFrameReader,可以用來讀取非流數(shù)據(jù)作為一個DataFrame
readStream函數(shù)
public DataStreamReader readStream()
返回一個DataFrameReader,可以用來讀取流數(shù)據(jù)作為一個DataFrame
time函數(shù)
public <T> T time(scala.Function0<T> f)
執(zhí)行一些代碼塊并打印輸出執(zhí)行該塊所花費(fèi)的時間。 這僅在Scala中可用,主要用于交互式測試和調(diào)試。
這個函數(shù)還是比較有用的,很多地方都能用到
implicits函數(shù)
public SparkSession.implicits$ implicits()
嵌套Scala對象訪問
stop函數(shù)
public void stop()
停止SparkContext
close函數(shù)
public void close()
與stop類似
轉(zhuǎn)載于:https://www.cnblogs.com/zzhangyuhang/p/9054880.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的【spark】SparkSession的API的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cp是什么意思?脑瘫(cp是什么意思脑瘫
- 下一篇: 微信公众号开发 回复事件(测试账号)