SparkSession 简介

前言

最近在学习Spark时,首先遇到了SparkSession,功能挺强大的,集大成者。
Apache Spark 2.0引入了SparkSession,其为用户提供了一个统一的切入点来使用Spark的各项功能,并且允许用户通过它调用DataFrame和Dataset相关API来编写Spark程序。

简介

  • SparkSession 主要用在 sparkSQL 中,当然也可以用在其他场合,他可以代替 SparkContext;
  • SparkSession 实际上封装了 SparkContext,另外也封装了 SparkConf、sqlContext,随着版本增加,可能更多
  • 我们尽量使用 SparkSession ,如果发现有些 API 不在 SparkSession 中,也可以通过 SparkSession 拿到 SparkContext 和其他 Context 等
    在这里插入图片描述

方法介绍

SparkSession 通过静态类Builder来实例化。


object SparkSessionExample{
  
  def main(args: Array[String]){
   val spark = SparkSession
			.builder()
			.appName("parquet")
			.config("spark.yarn.maxAppAttempts", 1)
			.enableHiveSupport()     
			.getOrCreate()
			.master("local[*]")
	val df = sparkSession.read.option("header","true").csv("src/sales.csv")
 
    df.show()
   }
}
 

Builder包含一些方法

  • appName(String name)
    用来设置应用程序名字,会显示在Spark web UI中,自己起名就行
  • config函数
    重载函数,是针对不同的情况,使用不同的函数,但是他们的功能都是用来设置配置项的。
    • config(SparkConf conf)
      根据给定的SparkConf设置配置选项列表。
    • config(String key, boolean value)
      设置配置项,针对值为boolean的
    • config(String key, double value)
      设置配置项,针对值为double的
    • config(String key, long value)
      设置配置项,针对值为long 的
    • config(String key, String value)
      设置配置项,针对值为String 的
  • enableHiveSupport函数
    表示支持Hive,包括 链接持久化Hive metastore, 支持Hive serdes, 和Hive用户自定义函数
  • getOrCreate()
    获取已经得到的 SparkSession,或则如果不存在则创建一个新的基于builder选项的SparkSession
  • master(String master)
    设置Spark master URL 连接,比如"local" 设置本地运行,"local[3]"本地运行3 cores,或则"spark://master:7007"运行在spark standalone 集群。
  • withExtensions(scala.Function1<SparkSessionExtensions,scala.runtime.BoxedUnit> f)
    这允许用户添加Analyzer rules, Optimizer rules, Planning Strategies 或则customized parser.这一函不常见的。
  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nsq_ai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值