无论是集群还是单机应用,我们往往会需要将一些参数写入配置文件中,在Spark中实现这一功能的是SparkConf。
本文中将针对SparkConf进行讲解。
基本概念
SparkConf对象的基本结构如下:
代码语言:javascript复制class pyspark.SparkConf (
loadDefaults = True,
_jvm = None,
_jconf = None
)
默认情况下,我们使用SparkConf()创建一个SparkConf对象时,它会加载spark.*名称的java文件中的变量作为配置文件信息。此外,我们可以设置一些参数来修改其行为。
对于一个SparkConf类,其包含一些内置的函数。例如,我们可以使用如下语句:
代码语言:javascript复制conf.setAppName(“PySpark App”).setMaster(“local”)
来修改应用名称和集群模式。但是需要注意的是,一旦我们将一个SparkConf对象传递给Spark集群后,此时则不再能够直接修改了。
SparkConf中一些常用的函数如下:
代码语言:javascript复制# 设置配置文件中变量
set(key, value)
# 设置spark的主节点url
setMaster(value)
# 设置app名称
setAppName(value)
# 查询配置文件中变量值
get(key, defaultValue=None)
# 设置worker节点中的Spark安装目录
setSparkHome(value)
入门实战
在接下来的实例中,我们将会简单的使用SparkConf对象。 首先,我们会设置spark应用的名称和masterURL地址。 此外,我们还会设置一些基本的Spark配置用于一个PySpark应用中。
代码语言:javascript复制from pyspark import SparkConf, SparkContext
conf = SparkConf().setAppName("PySpark App").setMaster("spark://master:7077")
sc = SparkContext(conf=conf)