Spark 2.0.0

在Spark2.0之后,Spark Session也是Spark 的一个入口, 为了引入dataframe和dataset的API,同时保留了原来SparkContext的functionality,
如果想要使用 HIVE,SQL,Streaming的API, 就需要Spark Session作为入口。

SparkSession spark = SparkSession.builder().appName(
"demo_spark"
).enableHiveSupport().getOrCreate();

1)SparkSession.builder() 创建此方法用于构造SparkSession。
2)master(“local”) 设置要连接的master URL,例如:“local”在本地运行“local[4]”以4核在本地运行“spark://master:7077”在spark独立集群上运行
3)appName( ) 设置将在spark Web UI中显示的应用程序的名称。如果未设置应用程序名称,则将使用随机生成的名称。
4)Config 设置使用此方法设置的配置选项会自动传递到’SparkConf’和’SparkSession’自己的配置,它的参数由键值对组成。
5)enableHiveSupport启用Hive支持,类似于HiveContext创建了sparkSession,我们可以用它来读取数据。
6)getOrCreate()方法表示有就拿过来,没有就创建,类似于单例模式。

使用SparkSession读取数据SparkSession是读取数据的入口点,类似于旧的SQLContext.read。以下代码使用SparkSession从CSV读取数据:

val df =spark.read.format("com.databricks.spark.csv")
<br>.schema(customSchema)   <br>.load("data.csv")  

从Spark 2.0.0开始,最好使用SparkSession,因为它提供了对sparkContext所具有的所有spark功能的访问。 此外,它还提供了用于处理DataFrame和DataSet的API运行SQL查询SparkSession可用于对数据执行SQL查询,将结果作为Data-Frame(即数据集[ROW])返回。

众所周知,在以前的版本中,sparkcontext 是spark的入口点,因为RDD是主要的API,它是使用上下文API创建和操作的。 对于每个其他API,我们需要使用不同的context。对于流式传输,我们需要streamingContext。 对于SQL sqlContext和hive hiveContext.,因为dataSet和DataFrame API正在成为新的独立API,我们需要为它们构建入口点。 因此在spark 2.0中,我们为DataSet和DataFrame API创建了一个新的入口点构建,称为Spark-Session。
它是SQLContext,HiveContext和未来的streamingContext的组合。 在这些context中可用的所有API都可以在SparkSession上获得,SparkSession也有实际计算的spark context 。
SparkSession: SparkSession实质上是SQLContext和HiveContext的组合(未来可能还会加上StreamingContext),
所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了sparkContext,所以计算实际上是由sparkContext完成的。
Scala:
val sparkSession = SparkSession.builder
.master(“master”)
.appName(“appName”)
.getOrCreate()
或者
SparkSession.builder.config(conf = SparkConf())

I、 SparkSubmit 的 shell脚本

/data/spark/spark-2.2.0-bin-hadoop2.7/bin/spark-submit
--master spark://elcndc2sc39t:7077
--class com.enc.analysis.core.AlgorithmExecute
/data/upload/analysis/analysisFrame-1.1.0.jar $1 $2

–master表示master路径,
–class表示入口的类的全路径
/data/upload/analysis/analysisFrame-1.1.0.jar 表示计算框架jar包的全路径
$1,$2…是自定义的shell命令进行传参,传递的参数会在入口类的main方法的String[] args中

参考自:https://www.cnblogs.com/Allen-rg/p/11364683.html

Spark Conf配置用法相关推荐

  1. Spark 安装配置简单测试

    简介 Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce ...

  2. Spark读取配置源码剖析

    我们知道,有一些配置可以在多个地方配置.以配置executor的memory为例,有以下三种方式:1. spark-submit的--executor-memory选项2. spark-default ...

  3. Spark history-server 配置 !运维人员的强大工具

    spark  history Server产生背景 以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息:但该WE ...

  4. Spark性能调优系列:Spark参数配置大全(官网资料)

    Spark参数配置大全 Spark提供了三个位置来配置系统 Spark属性控制大多数应用程序参数,可以使用SparkConf对象或Java系统属性来设置. 通过conf/spark-env.sh每个节 ...

  5. Spark安装配置和基础编程

    Spark安装配置和基础编程 重要知识点: Spark是一个开源的可应用于大规模数据处理的分布式计算框架,该框架可以独立安装使用,也可以和Hadoop一起安装使用.为了让Spark可以使用HDFS存取 ...

  6. Linux环境Spark安装配置及使用

    Linux环境Spark安装配置及使用 1. 认识Spark (1) Spark介绍 大数据计算引擎 官网:spark.apache.org/ 官方介绍:Apache Spark™ is a unif ...

  7. mysql etc_mysql etc下my.conf配置详情

    简介 配置mysql  etc下my.conf配置详情如下 [client] port = 3306 socket = /tmp/mysql.sock default-character-set = ...

  8. redis.conf配置选项如下

    redis.conf配置选项如下 daemonize 是否以后台进程运行,默认为no pidfile 如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid bind 绑定主 ...

  9. centos7系统/etc/resolv.conf 配置DNS客户

    文件/etc/resolv.conf配置DNS客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数.下面是一个例子文件: search mydom ...

最新文章

  1. 插入最快mysql8.0_MySQL8.0大表秒加字段,是真的吗?
  2. centos php5.2安装教程,CentOS 5.2 x86 64(AMD)编译安装PHP小记
  3. python一对一_Python - Django - ORM 一对一表结构
  4. CLR via C# (二)
  5. 运维编排场景系列----给实例加到SLS机器组
  6. flat在java中的含义_Java 9中Collectors.flatMapping()方法的重要性?
  7. 醉了!吃着火锅哼着歌,男朋友强行给我科普什么是补码!
  8. 卸载重装得会员、偷删本地文件?网易云回应了:系造谣攻击,悬赏10万找线索...
  9. C++之异常处理探究
  10. CANE:上下文相关动态图网络表示
  11. Google Play市场考察报告-2
  12. App后台开发架构实践
  13. mac 下 docker 镜像加速器
  14. C盘空间不足的处理方式
  15. 104道精选iOS面试题PDF
  16. Linux救援(rescue)模式知识点
  17. 侧馈矩形微带天线设计报告
  18. 零基础如何学 Web 前端开发?
  19. 最新资讯:iPhone 11显示模块更换计划,用于解决触摸问题
  20. 读《人脑连接组研究:脑结构网络和脑功能网络》

热门文章

  1. 朴素贝叶斯-垃圾邮件(中文的)处理
  2. 2019年开发者必读!20位阿里技术大牛们帮你列了一份经典书单!...
  3. highlightjs 详解
  4. python中casefold()函数的用法
  5. Eclipse的tomcat出现:the server cannot started because one or more of the ports are invalid
  6. 《Effective Debugging:软件和系统调试的66个有效方法》——导读
  7. 和菜鸟一起学linux之V4L2摄像头应用流程【转】
  8. web开发中的跨域问题
  9. 【汇编语言与计算机系统结构笔记12】序格式与伪操作:简化段的定义、操作符等
  10. linux cp{,bak},Linux中cp覆盖不提示