Какой из них является лучшим способом инициализации сессии pyspark - PullRequest
0 голосов
/ 06 мая 2019

Я начинаю новый с pyspark, поэтому, пожалуйста, потерпите меня. Пытаюсь найти лучший способ написания кода. Я не смог найти ответ на этот вопрос. Из кода, который я видел, я вижу 2 основных способа создания спарк-сессии.

Approach1: определите файл «spark.py» с помощью метода startpark, где вы определяете сеанс, а затем используете его в «main.py» - public git repo - https://github.com/AlexIoannides/pyspark-example-project

Approach2: определите класс клиента spark с сеансом spark, а затем создайте его экземпляр в главном.

Код подхода 1:

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

Код подхода 2:

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. Повторно ли используется искровой контекст. Предположим, вы используете один искровой кластер, но выпускаете несколько экземпляров этого кода с разными конфигами.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...