Работа Databricks PySpark продолжает отменяться

Я использую записную книжку Databricks в Azure, и у меня была прекрасная записная книжка Pyspark, которая вчера хорошо работала весь день. Но затем, в конце дня, я заметил, что получаю странную ошибку в коде, который, как я знал, работал раньше: org.apache.spark.SparkException: Job aborted due to stage failure: Task from application

Но так как было поздно, оставил на сегодня. Сегодня я попытался создать новый кластер и запустить код, и на этот раз он просто продолжает говорить, что моя работа «отменена».

На самом деле я просто попытался запустить одну строку кода:

filePath = "/SalesData.csv"

и даже это было отменено.

Редактировать:

Вот журнал ошибок std из Azure:

OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
/databricks/python/lib/python3.5/site-packages/IPython/config/loader.py:38: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.
  from IPython.utils.traitlets import HasTraits, List, Any, TraitError
Fri Jan  4 16:51:08 2019 py4j imported
Fri Jan  4 16:51:08 2019 Python shell started with PID  2543  and guid  86405138b8744987a1df085e4454bb5d
Could not launch process The 'config' trait of an IPythonShell instance must be a Config, but a value of class 'IPython.config.loader.Config' (i.e. {'HistoryManager': {'hist_file': ':memory:'}, 'HistoryAccessor': {'hist_file': ':memory:'}}) was specified. Traceback (most recent call last):
  File "/tmp/1546620668035-0/PythonShell.py", line 1048, in <module>
    launch_process()
  File "/tmp/1546620668035-0/PythonShell.py", line 1036, in launch_process
    console_buffer, error_buffer)
  File "/tmp/1546620668035-0/PythonShell.py", line 508, in __init__
    self.shell = self.create_shell()
  File "/tmp/1546620668035-0/PythonShell.py", line 617, in create_shell
    ip_shell = IPythonShell.instance(config=config, user_ns=user_ns)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/config/configurable.py", line 412, in instance
    inst = cls(*args, **kwargs)
  File "/databricks/python/lib/python3.5/site-packages/IPython/terminal/embed.py", line 159, in __init__
    super(InteractiveShellEmbed,self).__init__(**kw)
  File "/databricks/python/lib/python3.5/site-packages/IPython/terminal/interactiveshell.py", line 455, in __init__
    super(TerminalInteractiveShell, self).__init__(*args, **kwargs)
  File "/databricks/python/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 622, in __init__
    super(InteractiveShell, self).__init__(**kwargs)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/config/configurable.py", line 84, in __init__
    self.config = config
  File "/databricks/python/lib/python3.5/site-packages/traitlets/traitlets.py", line 583, in __set__
    self.set(obj, value)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/traitlets.py", line 557, in set
    new_value = self._validate(obj, value)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/traitlets.py", line 589, in _validate
    value = self.validate(obj, value)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/traitlets.py", line 1681, in validate
    self.error(obj, value)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/traitlets.py", line 1528, in error
    raise TraitError(e)
traitlets.traitlets.TraitError: The 'config' trait of an IPythonShell instance must be a Config, but a value of class 'IPython.config.loader.Config' (i.e. {'HistoryManager': {'hist_file': ':memory:'}, 'HistoryAccessor': {'hist_file': ':memory:'}}) was specified.

person user1761806    schedule 03.01.2019    source источник


Ответы (4)


Моя команда и я столкнулись с этой проблемой после установки пакета azureml['notebooks'] Python в наш кластер. Похоже, установка прошла успешно, но мы получили сообщение «Отменено» при попытке запустить ячейку кода.

Мы также получили в нашем журнале ошибку, аналогичную той, что была в этом посте:

The 'config' trait of an IPythonShell instance must be a Config, 
  but a value of class 'IPython.config.loader.Config'...

Похоже, что некоторые пакеты Python могут конфликтовать с этим объектом Config или быть несовместимыми. Мы удалили библиотеку, перезапустили кластер, и все заработало. Надеюсь, это кому-то поможет :)

person Matt    schedule 17.01.2019

Хорошо, я создал еще один новый кластер, и теперь он, кажется, работает. Единственное, что я сделал иначе, так это то, что в предыдущем кластере я установил максимальное количество узлов, которые можно масштабировать до 5. На этот раз я оставил значение по умолчанию, равное 8.

Однако я понятия не имею, действительно ли это имело значение. Esp. учитывая, что вчерашние ошибки были в кластере, который раньше работал нормально. Или что сегодняшняя ошибка связана с выполнением очень простого кода.

person user1761806    schedule 03.01.2019

похоже, что ваш кластер, возможно, перешел в плохое состояние и его необходимо перезапустить. Иногда также может произойти сбой базовой службы виртуальной машины, и вам нужно развернуть новый кластер с новыми узлами. Если вы не можете выполнить код, определенно начните с перезапуска кластера.

person c. fish    schedule 03.01.2019
comment
Хм, это снова происходит сегодня с кластером, который я отключил вчера и перезапустил сегодня. Начинаю раздражать. - person user1761806; 04.01.2019

Похоже, возникла проблема с установленной версией пакета IPython. Для нас это решило понижение версии IPython:

Кластеры (левая панель)> Щелкните свой кластер> Библиотеки> Установить новый> PyPi> в поле «Пакет» напишите: «ipython == 3.2.3»> Установить

Затем перезапустите свой кластер.

Кроме того, у Databricks, похоже, есть еще одна аналогичная проблема с пакетом NumPy, которая произошла с нами после исправления IPython. Если это произойдет и с вами, попробуйте перейти на numpy == 1.15.0 так же, как вы это сделали с IPython.

person David Taub    schedule 25.03.2019