Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 仅在需要时才使用链方法_Python - Fatal编程技术网

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()