Pyspark学习笔记(三)--- SparkContext 与 SparkSession

Pyspark学习笔记(三)— SparkContext 与 SparkSession

在这里插入图片描述


一、什么是SparkContext?

SparkContext 从 Spark 1.x(JavaSparkContext for Java)开始可用,在 2.0 中引入 SparkSession 之前,它被用作 Spark 和 PySpark 的入口点创建 SparkContext 是使用 RDD 编程并连接到 Spark Cluster 的第一步。
在org.apache.spark包中定义,用于以编程方式在集群上创建 Spark RDD、累加器和广播变量。 它的对象sc 是 spark-shell 中可用的默认变量,可以使用SparkContext类以编程方式创建
注意,每个 JVM 只能创建一个 SparkContext,如果您想创建另一个新 SparkContext,您应该stop()在创建新SparkContext之前停止现有 SparkContext。
官方文档: pyspark.SparkContext

#使用python语言创建sc变量的示例:
from pyspark.context import SparkContext
sc = SparkContext('local', 'test')
sc2 = SparkContext('local', 'test2') 

二、什么是 SparkSession

SparkSession 在 2.0 版本中引入,它是底层 PySpark 功能的入口点,以便以编程方式创建 PySpark RDD、DataFrame。

在Spark 2.0 及后续版本中,可以通过 pyspark.sql import SparkSession 引入新类 SparkSession ( );它是我们在 2.0 版本(SQLContext 和 HiveContext 等)之前拥有的所有不同上下文的组合类,为用户提供了统一的切入点
因此,创建 SparkSession 实例将是我们使用 RDD、DataFrame 和 Dataset 编写程序的第一条语句,SparkSession 将使用SparkSession.builder构建器模式创建

虽然 SparkContext 在 2.0 之前曾经是一个入口点,但它并没有完全被完全 SparkSession 取代,SparkContext 的许多特性在 Spark 2.0 及更高版本中仍然可用和使用。SparkSession 在内部使用 SparkSession 提供的配置创建 SparkConfig 和 SparkContext。

SparkSession 还包括在不同 contexts中可用的所有 API:
·Spark Context,
·SQL Context,
·Streaming Context,
·Hive Context.
官方文档:pyspark.sql.SparkSession

可以使用SparkSession.builderSparkSession.newSession 来创建任意数量的 SparkSession 对象。
示例:

import pyspark
from pyspark.sql import SparkSession

spark = SparkSession.builder.master("local[1]") \
                    .appName('SparkByExamples.com') \
                    .getOrCreate()

sparkSession3 = SparkSession.newSession

三、SparkSession 常用方法

version
返回运行应用程序的 Spark 版本,可能是集群配置的 Spark 版本。

createDataFrame()
这会从集合和RDD创建一个 DataFrame;

read()
返回DataFrameReader类的实例,用于将csv、parquet、avro 和更多文件格式的记录读取到 DataFrame 中;

readStream()
返回DataStreamReader 类的实例, 用于读取流数据。可用于将流数据读入 DataFrame。

sparkContext()–返回一个SparkContext。

sql(sqlQuery)– 执行上述 SQL 后返回一个 DataFrame。

sqlContext()– 返回SQLContext。

stop()– 停止当前SparkContext。

table(tableName) – 返回表或视图的 DataFrame。

udf()– 创建一个PySpark UDF 以在 DataFrame、Dataset 和 SQL上使用它。


系列文章目录:

Pyspark学习笔记(一)—序言及目录

①.Pyspark学习笔记(二)— spark-submit命令

②.Pyspark学习笔记(三)— SparkContext 与 SparkSession

③.Pyspark学习笔记(四)弹性分布式数据集 RDD 综述(上)

Pyspark学习笔记(四)弹性分布式数据集 RDD 综述(下)

Pyspark学习笔记(五)RDD操作(一)_RDD转换操作

Pyspark学习笔记(五)RDD操作(二)_RDD行动操作

Pyspark学习笔记(五)RDD操作(三)_键值对RDD转换操作

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值