Google Cloud Dataproc运行Pyspark任务找不到sparknlp模块问题咨询
报错原因排查清单
1. 安装范围未覆盖所有集群节点
- 仅在Dataproc的Master节点手动安装spark-nlp会导致Worker节点运行任务时找不到模块,Pyspark任务的Executor进程运行在Worker节点上,需要所有节点的Python环境都安装对应依赖。
- 推荐通过Dataproc初始化动作脚本在集群创建时全局安装,或者提交任务时添加
--py-files参数将spark-nlp的Python包分发到所有节点。
2. Python环境不一致
- Dataproc节点通常存在多套Python环境(如Python2/Python3共存、conda虚拟环境等),你安装spark-nlp的环境和Pyspark任务实际调用的Python解释器不是同一个。
- 提交任务时可通过如下参数强制指定Python解释器路径(替换为你安装了spark-nlp的Python路径即可):
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=/usr/bin/python3 --conf spark.executorEnv.PYSPARK_PYTHON=/usr/bin/python3
3. 依赖版本不匹配或安装包错误
- Spark NLP需要Python包和Java Jar包版本完全对应,仅安装Python包的情况下会触发加载失败。提交任务时需要同时指定对应的Java依赖坐标:
--packages com.johnsnowlabs.nlp:spark-nlp_2.12:<spark-nlp版本号>
- 注意pip安装时的包名是
spark-nlp,若你之前执行的是pip install sparknlp,实际安装的是另一个无关包,需要先卸载再安装正确的包:
pip uninstall -y sparknlp pip install spark-nlp
内容的提问来源于stack exchange,提问作者Kaushal panchal
相关产品推荐
相关产品推荐

