使用数据集和数据帧 API 对 Spark 进行编程的入口点。 SparkSession 可用于创建数据帧、将 DataFrame 注册为表、对表执行 SQL、缓存表和读取 parquet 文件。
Syntax
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
属性
| 财产 |
说明 |
version |
运行此应用程序的 Spark 版本。 |
conf |
Spark 的运行时配置接口。 |
catalog |
用户可以通过该接口创建、删除、更改或查询基础数据库、表、函数等。 |
udf |
返回 UDF 注册的 UDFRegistration。 |
udtf |
返回 UDTF 注册的 UDTFRegistration。 |
dataSource |
返回数据源注册的 DataSourceRegistration。 |
profile |
返回性能/内存分析的配置文件。 |
sparkContext |
返回基础 SparkContext。 仅限经典模式。 |
read |
返回可用于将数据读取为 DataFrame 的 DataFrameReader。 |
readStream |
返回一个 DataStreamReader,可用于将数据流读取为流式处理数据帧。 |
streams |
返回允许管理所有活动流式处理查询的 StreamingQueryManager。 |
tvf |
返回用于调用表值函数的 TableValuedFunction (TVF)。 |
方法
| 方法 |
说明 |
createDataFrame(data, schema, samplingRatio, verifySchema) |
从 RDD、列表、pandas DataFrame、numpy ndarray 或 pyarrow 表创建数据帧。 |
sql(sqlQuery, args, **kwargs) |
返回一个表示给定查询结果的数据帧。 |
table(tableName) |
以数据帧的形式返回指定的表。 |
range(start, end, step, numPartitions) |
创建一个 DataFrame,其中包含一个名为 id,包含区域中的元素的 LongType 列。 |
newSession() |
返回一个新的 SparkSession,其中包含单独的 SQLConf、已注册的临时视图和 UDF,但共享的 SparkContext 和表缓存。 仅限经典模式。 |
getActiveSession() |
返回当前线程的活动 SparkSession。 |
active() |
返回当前线程的活动或默认 SparkSession。 |
stop() |
停止基础 SparkContext。 |
addArtifacts(*path, pyfile, archive, file) |
将项目添加到客户端会话。 |
interruptAll() |
中断当前在服务器上运行的此会话的所有作。 |
interruptTag(tag) |
使用给定标记中断此会话的所有作。 |
interruptOperation(op_id) |
使用给定 operationId 中断此会话的作。 |
addTag(tag) |
添加要分配给此会话中此线程启动的所有作的标记。 |
removeTag(tag) |
删除以前为此线程启动的作添加的标记。 |
getTags() |
获取当前设置为分配给此线程启动的所有作的标记。 |
clearTags() |
清除当前线程的作标记。 |
建筑工人
| 方法 |
说明 |
config(key, value) |
设置配置选项。 选项会自动传播到 SparkConf 和 SparkSession 自己的配置。 |
master(master) |
设置要连接到的 Spark 主 URL。 |
remote(url) |
设置 Spark 远程 URL 以通过 Spark Connect 进行连接。 |
appName(name) |
设置应用程序的名称,该名称将显示在 Spark Web UI 中。 |
enableHiveSupport() |
启用 Hive 支持,包括与持久性 Hive 元存储的连接。 |
getOrCreate() |
获取现有的 SparkSession,或者(如果没有现有 SparkSession)基于此生成器中设置的选项创建新 SparkSession。 |
create() |
创建新的 SparkSession。 |
示例
spark = (
SparkSession.builder
.master("local")
.appName("Word Count")
.config("spark.some.config.option", "some-value")
.getOrCreate()
)
spark.sql("SELECT * FROM range(10) where id > 7").show()
+---+
| id|
+---+
| 8|
| 9|
+---+
spark.createDataFrame([('Alice', 1)], ['name', 'age']).show()
+-----+---+
| name|age|
+-----+---+
|Alice| 1|
+-----+---+
spark.range(1, 7, 2).show()
+---+
| id|
+---+
| 1|
| 3|
| 5|
+---+