二、SparkSession
spark sql
中所有功能的入口点是SparkSession
类。它可以用于创建DataFrame
、注册DataFrame
为table
、在table
上执行SQL
、缓存table
、读写文件等等。要创建一个
SparkSession
,仅仅使用SparkSession.builder
即可:from pyspark.sql import SparkSession
spark_session = SparkSession \
.builder \
.appName("Python Spark SQL basic example") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
Builder
用于创建SparkSession
,它的方法有(这些方法都返回self
):.appName(name)
:给程序设定一个名字,用于在Spark web UI
中展示。如果未指定,则spark
会随机生成一个。name
:一个字符串,表示程序的名字
.config(key=None,value=None,conf=None)
:配置程序。这里设定的配置会直接传递给SparkConf
和SparkSession
各自的配置。key
:一个字符串,表示配置名value
:对应配置的值conf
:一个SparkConf
实例
有两种设置方式:
通过键值对设置:
SparkSession.builder.config("spark.some.config.option", "some-value")
通过已有的
SparkConf
设置:SparkSession.builder.config(conf=SparkConf())
.enableHiveSupport()
:开启Hive
支持。(spark 2.0
的新接口).master(master)
:设置spark master URL
。如:master=local
:表示单机本地运行master=local[4]
:表示单机本地4核运行master=spark://master:7077
:表示在一个spark standalone cluster
上运行
.getOrCreate()
:返回一个已有的SparkSession
实例;如果没有则基于当前builder
的配置,创建一个新的SparkSession
实例- 该方法首先检测是否有一个有效的全局默认
SparkSession
实例。如果有,则返回它;如果没有,则创建一个作为全局默认SparkSession
实例,并返回它 - 如果已有一个有效的全局默认
SparkSession
实例,则当前builder
的配置将应用到该实例上
- 该方法首先检测是否有一个有效的全局默认