ПРЕДУПРЕЖДЕНИЕ SparkContext: в одной JVM обнаружено несколько запущенных SparkContexts - PullRequest
0 голосов
/ 08 ноября 2018

Я пишу это, так как не могу найти ответ на эту проблему.Я использую PySpark и запускаю скрипт, за исключением того, что не вижу, где находятся мои другие сессии Spark, или закрываю их.Каков наилучший способ сделать следующее?

Я не инициализирую никакую другую SparkContext в этой spark-submit работе, поэтому это должны быть контексты, оставленные после некоторого предыдущего запуска?Обратите внимание, что я не хочу allowmultiplecontexts.

  1. Проверить работу SparkContexts.
  2. Использовать существующие SparkContexts, если они существуют.
  3. Лучший способизмените этот код.
from src import config
import pandas as pd
import plotly.graph_objs as go
from visualize_main import app
from dash.dependencies import Input, Output, State
from pyspark.sql import SparkSession
from datetime import datetime
import dash_core_components as dcc
import dash_html_components as html
from pyspark import SparkContext, SparkConf

spark =SparkSession.builder.master('local').appName("morphy_test111_dgdfgdf").config(conf=conf).getOrCreate()

Я отправляю работу вместе со следующим

spark-submit /app.py

Я получаю эту ошибку

WARN SparkContext: Multiple running SparkContexts detected in the same JVM!
org.apache.spark.SparkException: Only one SparkContext may be running in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true. The currently running SparkContext was created at:

Любая помощь, высоко оцениваемая какЯ не нашел правильного объяснения этому.

1 Ответ

0 голосов
/ 08 ноября 2018

a) Проверка работоспособности sparkcontexts b) Использовать существующие sparkcontexts, если они существуют c) Лучший способ изменить этот код

В этом случае удалить:

SparkContext.stop("morphy_test11")
conf = SparkConf()
conf.set("spark.driver.allowMultipleContexts", "true")

и оставить только

spark = SparkSession.builder.master('local').appName("morphy_test111_dgdfgdf").config(conf=conf).getOrCreate()

Если есть активный контекст, он будет использоваться повторно.

...