哪一种是初始化pyspark会话的更好方法

时间:2019-05-06 17:52:01

标签: python apache-spark pyspark

我从pyspark开始新的学习,所以请多多包涵。试图找到编写代码的最佳方法。我无法找到答案。从我看到的代码中,我看到了创建Spark会话的2种主要方法。

方法1:使用startspark方法定义一个“ spark.py”文件,在其中定义会话,然后在“ main.py”中使用它-public git repo-https://github.com/AlexIoannides/pyspark-example-project

方法2:使用spark会话定义一个spark客户端类,然后在主实例中实例化它。

Approach1代码:

https://github.com/AlexIoannides/pyspark-example-project

Approach2代码:

class sparkClient:
    def __init__(self,threshold,warning_errors,API_VERSION,PAGE_SIZE):
        spark = SparkSession.builder.appName("myapp").config("xxxxx", os.path.realpath(os.path.join(os.path.dirname(__file__), os.pardir, "spark-warehouse"))).enableHiveSupport().getOrCreate()

    spark.conf.set("spark.hadoop.mapred.output.compress", "true")
    spark.conf.set("spark.hadoop.mapred.output.compression.codec",\
"true")


def main():
    pass


if __name__ == "__main__":
    spark_Client = sparkClient(threshold,warning_errors,API_VERSION,PAGE_SIZE)
    spark_session = spark_Client.spark_session 
    .....
  1. 我试图了解上述方法在执行方式上有何不同。
  2. spark上下文是否已重用-假设您使用了一个spark集群,但是使用不同的配置发布了此代码的多个实例。

0 个答案:

没有答案