sc_conf =
SparkConf()
sc_conf.setMaster(
'
spark://master:7077
'
)
sc_conf.setAppName(
'
my-app
'
)
sc_conf.set(
'
spark.executor.memory
'
,
'
2g
'
)
#
executor memory是每个节点上占用的内存。每一个节点可使用内存
sc_conf.set(
"
spark.executor.cores
"
,
'
4
'
)
#
spark.executor.cores:顾名思义这个参数是用来指定executor的cpu内核个数,分配更多的内核意味着executor并发能力越强,能够同时执行更多的task
sc_conf.set(
'
spark.cores.max
'
, 40)
#
spark.cores.max:为一个application分配的最大cpu核心数,如果没有设置这个值默认为spark.deploy.defaultCores
sc_conf.set(
'
spark.logConf
'
, True)
#
当SparkContext启动时,将有效的SparkConf记录为INFO。
print
(sc_conf.getAll())
sc
= SparkContext(conf=
sc_conf)
return
sc
from pyspark.conf import SparkConf
conf=SparkConf()
conf.set('spark.sql.execute.arrow.enabled','true')
if os.getenv("APP_MODE") == 'prod':
url = 'spark://master:7077'
conf.setAppName('prod-practice-info').setMaster(url).set("spark.driver.maxResultSize", "12g").set("spark.executor.memory", '4g')
else:
print("本地环境")
url = 'local[*]'
conf.setAppName('prod-practice-info').setMaster(url)
spark = SparkSession.builder. \
config(conf=conf).\
getOrCreate()