Получение ошибки с помощью sparkSession при использовании многопроцессорной обработки в PySpark - PullRequest
0 голосов
/ 24 октября 2018

Мой код выглядит следующим образом:

def processFiles(prcFile , spark:SparkSession):
    print(prcFile)
    app_id = spark.sparkContext.getConf().get('spark.app.id')
    app_name = spark.sparkContext.getConf().get('spark.app.name')
    print(app_id)
    print(app_name)
def main(configPath,args):
    config.read(configPath)
    spark: SparkSession = pyspark.sql.SparkSession.builder.appName("multiprocessing").enableHiveSupport().getOrCreate()    
    mprc = multiprocessing.Pool(3)
    lst=glob.glob(config.get('DIT_setup_config', 'prcDetails')+'prc_PrcId_[0-9].json')
    mprc.map(processFiles,zip(lst, repeat(spark.newSession())))

Теперь я хочу передать новый сеанс Spark (spark.newSession ()) и обработать данные соответствующим образом, но я получаю сообщение об ошибке:

Исключение: похоже, вы пытаетесь сослаться на SparkContext из широковещательной переменной, действия или преобразования.SparkContext может использоваться только в драйвере, а не в коде, который он запускает на рабочих.Для получения дополнительной информации см. SPARK-5063.

Любая помощь будет весьма полезна

...