汇总
Spark SQL和DataFrames的重要类:
- pyspark.sql.SparkSession DataFrame和SQL功能的主要入口点。
- pyspark.sql.DataFrame 分布式数据集合,分为命名列。
- pyspark.sql.Column DataFrame的列表达式。
- pyspark.sql.Row DataFrame的行表达式。
- pyspark.sql.GroupedData 聚合方法,由DataFrame.groupBy()返回。
- pyspark.sql.DataFrameNaFunctions 处理缺失数据(空值)的方法。
- pyspark.sql.DataFrameStatFunctions 统计功能的方法。
- pyspark.sql.functions 内置功能列表DataFrame。
- pyspark.sql.types 支持的数据类型列表。
- pyspark.sql.Window 用于支持窗口功能。
具体
class pyspark.sql.SparkSession(sparkContext, jsparkSession=None)
Spark数据集和DataFrame API的主要入口。创建DataFrame、注册DataFarme为tables,在tables执行SQL语句、持久化tables、读取paquet(一种列式文件)。
>>> spark = SparkSession.builder \
... .master("local") \
... .appName("Word Count") \
... .config("spark.some.config.option", "some-value") \
... .getOrCreate()
builder
类变量,Builder的类方法构建SparkSession实例
1.class Builder SparkSession构建器
- appName(name) 应用名。
- config 将配置选项自动传到SparkConf和SparkSession的配置。
使用已经存在的SparkConf配置
>>> from pyspark.conf import SparkConf
>>> SparkSession.builder.config(conf=SparkConf())
<pyspark.sql.session...
对于键值对,可以忽略变量名
>>> SparkSession.builder.config("spark.some.config.option", "some-value")
<pyspark.sql.session...
- enableHiveSupport() 启用配置单元支持,包括到永久配置hive元存储的连接、对hive serdes的支持以及配置单元用户定义函数。
- getOrCreate() 获取一个现有的SparkSession,或者,如果没有现有的SparkSession,则基于builder设置的选项创建新的。
此方法首先检查是否存在有效的全局默认SparkSession,如果是,则返回该SparkSession。如果没有有效的全局默认SPARKSISTION,则该方法创建新的SPARKSIST,并将新创建的SparkSession分配为全局默认值。
>>> s1 = SparkSession.builder.config("k1", "v1").getOrCreate()
>>> s1.conf.get("k1") == s1.sparkContext.getConf().get("k1") == "v1"
True
如果已经存在的SparkSession被返回,builder中config配置背应用到存在的SparkSession
>>> s2 = SparkSession.builder.config("k2", "v2").getOrCreate()
>>> s1.conf.get("k1") == s2.conf.get("k1")
True
>>> s1.conf.get("k2") == s2.conf.get("k2")
True
- master(master) 设置要连接的Spark主URL,例如“local”要在本地运行,“local[4]”要在4核的本地运行,“spark://master:7077”在Spark独立群集上运行。
- property catalog 用户创建、删除、更改或查询底层数据库、表、函数等的接口。
- property conf Spark的运行配置接口。用户可以通过它获取和设置与spark sql相关的所有spark和hadoop配置。当获取配置的值时,这将默认为基础sparkContext中设置的值。