Le Problème
Quand je veux importer pyspark dans un script python dans PyCharm, je reçois l'erreur suivante (ne peut pas importer x de y). J'ai vérifié le répertoire et le module qui devrait être importé n'est pas présent.
C'est tout ce qu'il y a dans pyspark\cloudpickle\
Pourquoi n'est-il pas installé ? Quels pourraient être les problèmes possibles ?
Ce que j'ai essayé
Problèmes de compatibilité ? J'ai trouvé ceci qui semble similaire, mais mon erreur dit "ne peut pas importer name
"
J'ai également trouvé ceci concernant cloudpickle spécifiquement, j'ai essayé avec cloudpickle=1.1.1 mais ça n'a pas fonctionné pour moi.
J'ai aussi créé un nouvel environnement, réinstallé pyspark et redémarré, mais ça n'a pas aidé.
import findspark
findspark.init()
Fonctionne sans erreur.
Évidemment, je suis nouveau dans Spark/PySpark et je pourrais rater l'évidence...
Erreur
import pyspark
Traceback (most recent call last):
File "C:\Users\me\anaconda3\envs\myenv\lib\site-packages\IPython\core\interactiveshell.py", line 3397, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "", line 3, in
from pyspark.sql import Row
File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.3.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\me\anaconda3\envs\myenv\lib\site-packages\pyspark\__init__.py", line 51, in
from pyspark.context import SparkContext
File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.3.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\me\anaconda3\envs\myenv\lib\site-packages\pyspark\context.py", line 33, in
from pyspark.broadcast import Broadcast, BroadcastPickleRegistry
File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.3.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\me\anaconda3\envs\myenv\lib\site-packages\pyspark\broadcast.py", line 25, in
from pyspark.cloudpickle import print_exec
ImportError: ne peut pas importer le nom 'print_exec' de 'pyspark.cloudpickle' (C:\Users\me\anaconda3\envs\myenv\lib\site-packages\pyspark\cloudpickle\__init__.py)
Spécifications
Je travaille dans l'IDE PyCharm (PyCharm Community Edition 2021.3.1)
Python 3.10.4 | empaqueté par conda-forge | (principal, 30 mars 2022, 08:38:02) [MSC v.1916 64 bits (AMD64)]
>conda list | grep pyspark
pyspark 3.2.1
>conda info
version conda : 4.12.0
version de conda-build : 3.20.5
version de python : 3.8.5.final.0