Ошибка после запуска задания pyspark на Databricks из локального кода и использования plotly - PullRequest
0 голосов
/ 14 октября 2019

Я подключился к кластеру Databricks (python 3.5) через код (python 3.5) и выполняю задание в кластере. Код делает то, что должен, вычисляя некоторую статистику из фрейма данных и выводя эту статистику в HTML, используя plotly (4.1.1). Но после этого я получаю некоторые ошибки подключения:

File "C:\Users\dkdbe1\AppData\Local\Continuum\anaconda3\envs\dbconnect\lib\site-packages\py4j\java_gateway.py", line 1145, in send_command
    self.socket.sendall(command.encode("utf-8"))
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\dkdbe1\AppData\Local\Continuum\anaconda3\envs\dbconnect\lib\site-packages\py4j\java_gateway.py", line 985, in send_command
    response = connection.send_command(command)
  File "C:\Users\dkdbe1\AppData\Local\Continuum\anaconda3\envs\dbconnect\lib\site-packages\py4j\java_gateway.py", line 1149, in send_command
    "Error while sending", e, proto.ERROR_ON_SEND)
py4j.protocol.Py4JNetworkError: Error while sending

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\dkdbe1\AppData\Local\Continuum\anaconda3\envs\dbconnect\lib\site-packages\py4j\java_gateway.py", line 929, in _get_connection
    connection = self.deque.pop()
IndexError: pop from an empty deque

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\dkdbe1\AppData\Local\Continuum\anaconda3\envs\dbconnect\lib\site-packages\py4j\java_gateway.py", line 1067, in start
    self.socket.connect((self.address, self.port))
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

Задание Spark:

import plotly.graph_objects as go
import plotly.offline as pyo
from plotly.subplots import make_subplots
import pandas as pd
from databricks_funs import *
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
org = spark.read.format("json").load("path")
org = org.dropDuplicates()
pandas_dataframes, pandas_titles, pd_colors = profile_simple_df_save_table(org) # statistic function

, где эти три значения используются в HTML, сгенерированном графиком. Я выяснил, что если запустить приведенный выше код без графического кода, я не получаю никакой ошибки, но если я запускаю код ниже:

fig = make_subplots(
    rows=N, cols=1,
    row_heights = list(row_heigth),
    subplot_titles = tuple(titles),
    vertical_spacing=0.025/N,
    specs=specs
)

Я думаю, что проблема может заключаться в переключении типа «соединение Java»между искрой и заговором, но я не уверен.

...