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类似

【spark】SparkSession的API的更多相关文章

  1. APACHE SPARK 2.0 API IMPROVEMENTS: RDD, DATAFRAME, DATASET AND SQL

    What’s New, What’s Changed and How to get Started. Are you ready for Apache Spark 2.0? If you are ju ...

  2. Spark:java api实现word count统计

    方案一:使用reduceByKey 数据word.txt 张三 李四 王五 李四 王五 李四 王五 李四 王五 王五 李四 李四 李四 李四 李四 代码: import org.apache.spar ...

  3. Spark SQL 编程API入门系列之SparkSQL的依赖

    不多说,直接上干货! 不带Hive支持 <dependency> <groupId>org.apache.spark</groupId> <artifactI ...

  4. (转)Spark JAVA RDD API

    对API的解释: 1.1 transform l  map(func):对调用map的RDD数据集中的每个element都使用func,然后返回一个新的RDD,这个返回的数据集是分布式的数据集 l   ...

  5. Spark:java api读取hdfs目录下多个文件

    需求: 由于一个大文件,在spark中加载性能比较差.于是把一个大文件拆分为多个小文件后上传到hdfs,然而在spark2.2下如何加载某个目录下多个文件呢? public class SparkJo ...

  6. Spark的Java API例子详解

    package com.hand.study; import scala.Tuple2; import org.apache.spark.SparkConf; import org.apache.sp ...

  7. Spark SQL 编程API入门系列之Spark SQL支持的API

    不多说,直接上干货! Spark SQL支持的API SQL DataFrame(推荐方式,也能执行SQL) Dataset(还在发展) SQL SQL 支持basic SQL syntax/Hive ...

  8. Structure Streaming和spark streaming原生API访问HDFS文件数据对比

    此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Structure Stream访问方式 code examples import org.apache.sp ...

  9. Spark MLlib编程API入门系列之特征选择之卡方特征选择(ChiSqSelector)

    不多说,直接上干货! 特征选择里,常见的有:VectorSlicer(向量选择) RFormula(R模型公式) ChiSqSelector(卡方特征选择). ChiSqSelector用于使用卡方检 ...

随机推荐

  1. 解决[[NSFileManager defaultManager] contentsOfDirectoryAtPath 方法获取不到数据的bug

    在说这个问题之前,必须先解释一下,我们在引入project的时候,xcode会给我们3个选项 1.Copy items if needed 主要是说明,是否要将文件复制到project所在文件夹. 假 ...

  2. Spark SQL原理和实现--王家林老师

  3. 分页和Cookie、Session

    分页和Cookie.Session 分页 自定义分页 函数班 from django.shortcuts import render # Create your views here. data = ...

  4. UVALive 6906 A - Cluster Analysis

    思路:排个序,依次选就好了. #include <bits/stdc++.h> #define PB push_back #define MP make_pair using namesp ...

  5. mybatis 复习笔记01

    本文内容转自传智播客笔记 1. 问题总结  1). 数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能. 设想:使用数据库连接池管理数据库连 ...

  6. Eclipse+maven 导致Eclipse启动后Build workspaces卡死或者下载缓慢的问题

    参考文档: (1)Eclipse 一直不停 building workspace完美解决总结 (2)eclipse 一直building workspace 问题 解决办法: (1)第一步: 修改ec ...

  7. 每天学点Linux命令之grep 和 wc命令 ---(6/25)

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  8. JMS、MQ、ActiveMQ

    JMS 的一个标准或者说是一个协议. 通常用于企业级应用的消息传递. 主要有topic 消息(1 对多), queue 消息(1对1). ActiveMQ 是一个JMS 的实现, apache 出的. ...

  9. Windows:FTP命令大全

    Windows:FTP命令大全 简介 1, open:与服务器相连接: 2, send(put):上传文件: 3,get:下载文件: 4,mget:下载多个文件: 用法: mget *:下载当前路径下 ...

  10. JVM调优总结(二)

    Java对象的大小 基本数据的类型的大小是固定的,这里就不多说了.对于非基本类型的Java对象,其大小就值得商榷. 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有 ...