J'utilise le notebook Databricks sur Azure et j'avais un notebook Pyspark parfaitement parfait qui avait bien fonctionné toute la journée d'hier. Mais à la fin de la journée, j'ai remarqué que j'obtenais une erreur étrange sur le code dont je savais qu'il fonctionnait auparavant: org.apache.spark.SparkException: Job abandonné en raison d'un échec d'étape: Tâche de l'application
Mais comme il était tard, je l'ai laissé jusqu'à aujourd'hui. Aujourd'hui, j'ai essayé de créer un nouveau cluster et d'exécuter le code et cette fois, cela ne cesse de dire que mon travail a été "annulé"
En fait, j'ai juste essayé d'exécuter une seule ligne de code:
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.
et même cela a été annulé.
Modifier:
Voici le journal des erreurs std d'Azure:
filePath = "/SalesData.csv"
4 Réponses :
Ok, j'ai fini par créer un autre nouveau cluster et il semble maintenant fonctionner. La seule chose que j'ai faite différemment, c'est que dans le cluster précédent, j'ai défini le nombre maximal de nœuds qu'il pouvait augmenter jusqu'à 5. Cette fois, je l'ai laissé par défaut de 8.
Cependant, je ne sais pas si c'est vraiment ce qui a fait la différence. Esp. étant donné que les erreurs d'hier étaient sur un cluster qui fonctionnait auparavant correctement. Ou que l'erreur d'aujourd'hui consistait à exécuter un code très simple.
il semble que votre cluster soit entré dans un mauvais état et qu'il devait être redémarré. Parfois, le service VM sous-jacent peut également échouer et vous devez lancer un nouveau cluster avec de nouveaux nœuds. Si vous ne parvenez pas à exécuter le code définitivement, commencez par redémarrer le cluster.
Hmm, cela se produit encore aujourd'hui avec un cluster que j'ai arrêté hier et redémarré aujourd'hui. Commençant à devenir ennuyeux.
Mon équipe et moi avons rencontré ce problème après avoir installé le package Python azureml ['notebooks']
dans notre cluster. L'installation a semblé fonctionner, mais nous avons reçu le message "Annulé" en essayant d'exécuter une cellule de code.
Nous avons également reçu une erreur dans notre journal similaire à celle de ce message:
The 'config' trait of an IPythonShell instance must be a Config, but a value of class 'IPython.config.loader.Config'...
Semble avoir un problème avec la version du package IPython installée. Ce qui nous a résolu, c'est la rétrogradation de la version IPython:
Clusters (volet de gauche)> Cliquez sur votre cluster> Bibliothèques> Installer nouveau> PyPi> dans le champ "Package", écrivez: "ipython == 3.2.3"> Installer
Ensuite, redémarrez votre cluster.
De plus, Databricks semble avoir un autre problème similaire avec le paquet NumPy, qui nous est arrivé après avoir corrigé l'IPython. Si cela vous arrive aussi, essayez de passer à numpy == 1.15.0 de la même manière que vous l'avez fait avec IPython.