SparkSession是一个比较重要的类,它的功能的实现,肯定包含比较多的函数,这里介绍下它包含哪些函数。
- builder函数
public static SparkSession.Builder builder()
创建 SparkSession.Builder,初始化SparkSession.
- setActiveSession函数
public static void setActiveSession(SparkSession session)```
当SparkSession.GetOrCreate()被调用,SparkSession发生变化,将会返回一个线程和它的子线程。这将会确定给定的线程接受带有隔离会话的SparkSession,而不是全局的context。
- clearActiveSession函数
public static void clearActiveSession()
清除当前线程的Active SparkSession。然后调用GetOrCreate将会返回第一次创建的context代替本地线程重写
- setDefaultSession函数
public static void setDefaultSession(SparkSession session)
设置默认的SparkSession,返回builder
- clearDefaultSession函数
public static void clearDefaultSession()
清除默认的SparkSession返回的builder
- getActiveSession函数
public static scala.Option<SparkSession> getActiveSession()
由builder,返回当前线程的Active SparkSession
- getDefaultSession函数
public static scala.Option<SparkSession> getDefaultSession()
由builder,返回默认的SparkSession
- sparkContext函数
public SparkContext sparkContext()
- version函数
public String version()
返回运行应用程序的spark版本
- sharedState函数
public org.apache.spark.sql.internal.SharedState sharedState()
通过sessions共享状态,包括SparkContext, cached 数据, listener, 和catalog.
这是内部spark,接口稳定性没有保证
- sessionState函数
public org.apache.spark.sql.internal.SessionState sessionState()
通过session隔离状态,包括:SQL 配置, 临时表, registered 功能, 和 其它可接受的 SQLConf.
这是内部spark,接口稳定性没有保证
- sqlContext函数
public SQLContext sqlContext()
session封装以 SQLContext的形式,为了向后兼容。
- conf函数
public RuntimeConfig conf()
运行spark 配置接口
通过这个接口用户可以设置和获取与spark sql相关的所有Spark 和Hadoop配置.当获取config值,
- listenerManager函数
public ExecutionListenerManager listenerManager()
用于注册自定义QueryExecutionListeners的接口,用于侦听执行指标。
- experimental函数
public ExperimentalMethods experimental()
collection函数,被认为是experimental,可以用于查询高级功能的查询计划程序。
- udf函数
public UDFRegistration udf()
collection 函数,用于用户自定义函数
- streams函数
public StreamingQueryManager streams()
返回StreamingQueryManager ,允许管理所有的StreamingQuerys
- newSession函数
public SparkSession newSession()
启动一个独立的 SQL 配置, temporary 表, registered 功能新的session,但共享底层的SparkContext 和缓存数据.
- emptyDataFrame函数
public Dataset<Row> emptyDataFrame()
返回一个空没有行和列的DataFrame
- emptyDataset函数
public <T> Dataset<T> emptyDataset(Encoder<T> evidence$1)
创建一个T类型的空的Dataset
- createDataFrame函数
public <A extends scala.Product> Dataset<Row> createDataFrame(RDD<A> rdd,scala.reflect.api.TypeTags.TypeTag<A> evidence$2)
从rdd创建DateFrame
public Dataset<Row> createDataFrame(RDD<Row> rowRDD, StructType schema)
从RDD包含的行给定的schema,创建DataFrame。需要确保每行的RDD结构匹配提供的schema,否则将会运行异常。
public Dataset<Row> createDataFrame(JavaRDD<Row> rowRDD,StructType schema)
创建DataFrame从包含schema的行的RDD。确保RDD提供的每行结构匹配提供的schema,否则运行异常
public Dataset<Row> createDataFrame(java.util.List<Row> rows,StructType schema)
- 创建DataFrame从包含行的schema的java.util.List
public Dataset<Row> createDataFrame(RDD<?> rdd,Class<?> beanClass)
应用schema到Java Beans的RDD
警告:由于Java Bean中的字段没有保证的顺序,因此SELECT *查询将以未定义的顺序返回列。
public Dataset<Row> createDataFrame(JavaRDD<?> rdd, Class<?> beanClass)
应用schema到Java Beans的RDD
警告:由于Java Bean中的字段没有保证的顺序,因此SELECT *查询将以未定义的顺序返回列。
public Dataset<Row> createDataFrame(java.util.List<?> data,Class<?> beanClass)
应用schema到Java Bean list
警告:由于Java Bean中的字段没有保证的顺序,因此SELECT *查询将以未定义的顺序返回列。
baseRelationToDataFrame函数
public Dataset<Row> baseRelationToDataFrame(BaseRelation baseRelation)
转换创建的BaseRelation,为外部数据源到DataFrame
- createDataset函数
public <T> Dataset<T> createDataset(scala.collection.Seq<T> data,Encoder<T> evidence$4)
从本地给定类型的数据Seq创建DataSet。这个方法需要encoder (将T类型的JVM对象转换为内部Spark SQL表示形式)。这通常是通过从sparksession implicits自动创建。或则可以通过调用 Encoders上的静态方法来显式创建。
public <T> Dataset<T> createDataset(RDD<T> data,Encoder<T> evidence$5)
创建DataSet从给定类型的RDD。这个方法需要encoder (将T类型的JVM对象转换为内部Spark SQL表示形式)。通常自动创建通过SparkSession的implicits 或则可以通过调用 Encoders上的静态方法来显式创建。
public <T> Dataset<T> createDataset(java.util.List<T> data,Encoder<T> evidence$6)
创建 Dataset,对于T类型的java.util.List。这个方法需要encoder (将T类型的JVM对象转换为内部Spark SQL表示形式), 或则可以通过调用 Encoders上的静态方法来显式创建。
- range函数
public Dataset<Long> range(long end)使用名为id的单个LongType列创建一个Dataset,包含元素的范围从0到结束(不包括),步长值为1。
public Dataset<Long> range(long start,long end)
使用名为id的单个LongType列创建一个Dataset,包含元素的范围从start到结束(不包括),步长值为1。
public Dataset<Long> range(long start, long end, long step)
使用名为id的单个LongType列创建一个Dataset,包含元素的范围从start到结束(不包括),步长值为step。
public Dataset<Long> range(long start,long end,long step,int numPartitions)
使用名为id的单个LongType列创建一个Dataset,包含元素的范围从start到结束(不包括),步长值为step,指定partition 的数目
- catalog函数
public Catalog catalog()
用户可以通过它 create, drop, alter 或则query 底层数据库, 表, 函数等.
- table函数
public Dataset<Row> table(String tableName)返回指定的table/view作为DataFrame
tableName是可以合格或则不合格的名称。如果在数据库中指定,它在数据库中会识别。否则它会尝试找到一个临时view ,匹配到当前数据库的table/view,全局的临时的数据库view也是有效的。
- sql函数
public Dataset<Row> sql(String sqlText)
使用spark执行sql查询,作为DataFrame返回结果。用来sql parsing,可以用spark.sql.dialect来配置
- read函数
public DataFrameReader read()
返回一个DataFrameReader,可以用来读取非流数据作为一个DataFrame
- readStream函数
public DataStreamReader readStream()
返回一个DataFrameReader,可以用来读取流数据作为一个DataFrame
- time函数
public <T> T time(scala.Function0<T> f)
执行一些代码块并打印输出执行该块所花费的时间。 这仅在Scala中可用,主要用于交互式测试和调试。
这个函数还是比较有用的,很多地方都能用到
- implicits函数
public SparkSession.implicits$ implicits()
嵌套Scala对象访问
- stop函数
public void stop()
停止SparkContext
- close函数
public void close()
与stop类似
网友评论