Python 仅在需要时才使用链方法
我有以下代码:Python 仅在需要时才使用链方法,python,Python,我有以下代码: spark = SparkSession.builder \ .appName("sss")\ .master("spark://" + os.environ["MASTER_HOST"] + ":7077")\ .config("spark.submit.deployMode", os.environ["DEPLOY_MODE"])\ .getOrCreate() 如何配置代码,使其仅在条件为真时链接代码的特定部分:
spark = SparkSession.builder \
.appName("sss")\
.master("spark://" + os.environ["MASTER_HOST"] + ":7077")\
.config("spark.submit.deployMode", os.environ["DEPLOY_MODE"])\
.getOrCreate()
如何配置代码,使其仅在条件为真时链接代码的特定部分:下面是一个虚构的代码:
spark = SparkSession.builder \
.appName("sss")\
.master("spark://" + os.environ["MASTER_HOST"] + ":7077")\ if os.environ["MASTER_HOST"]
.config("spark.submit.deployMode", os.environ["DEPLOY_MODE"])\ if os.environ["DEPLOY_MODE"]
.getOrCreate()
我认为这会起作用,但这段代码似乎对我来说很长:
spark = SparkSession.builder \
.appName("sss")\
if os.environ["MASTER_HOST"]:
spark = spark.master("spark://" + os.environ["MASTER_HOST"] + ":7077")
....
要产生所需的结果,您能想到的最小代码片段是什么?这是您能做的最好的了
builder = SparkSession.builder.appName("sss")
if os.environ["MASTER_HOST"]:
builder = builder.master("spark://" + os.environ["MASTER_HOST"] + ":7077")
if os.environ["DEPLOY_MODE"]:
builder = builder.config("spark.submit.deployMode", os.environ["DEPLOY_MODE"])
spark = builder.getOrCreate()
或
是的,这样做“将工作”代码。不要太花哨。根据对象的行为,您可能会忽略spark=
。
master_host = os.environ["MASTER_HOST"]
deploy_mode = os.environ["DEPLOY_MODE"]
builder = SparkSession.builder.appName("sss")
if master_host:
builder = builder.master("spark://" + master_host + ":7077")
if deploy_mode:
builder = builder.config("spark.submit.deployMode", deploy_mode)
spark = builder.getOrCreate()