簡體   English   中英

Apache Spark - ModuleNotFoundError:沒有名為“mysql”的模塊

[英]Apache Spark - ModuleNotFoundError: No module named 'mysql'

我正在嘗試將 Apache Spark 驅動程序提交到遠程集群。 我在使用名為mysql的 python package 時遇到了困難。 我在所有 Spark 節點上安裝了這個 package。 集群在 docker-compose 內部運行,圖像基於bde2020

$ docker-compose logs  impressions-agg
impressions-agg_1  | Submit application /app/app.py to Spark master spark://spark-master:7077
impressions-agg_1  | Passing arguments 
impressions-agg_1  | 19/11/13 18:45:20 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
impressions-agg_1  | Traceback (most recent call last):
impressions-agg_1  |   File "/app/app.py", line 6, in <module>
impressions-agg_1  |     from mysql.connector import connect
impressions-agg_1  | ModuleNotFoundError: No module named 'mysql'
impressions-agg_1  | log4j:WARN No appenders could be found for logger (org.apache.spark.util.ShutdownHookManager).
impressions-agg_1  | log4j:WARN Please initialize the log4j system properly.
impressions-agg_1  | log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

模塊mysql通過 pip 安裝在所有節點上。

$ docker-compose exec spark-master pip list
Package         Version            
--------------- -------------------
mysql-connector 2.2.9              
pip             18.1               
setuptools      40.8.0.post20190503

$ docker-compose exec spark-worker pip list
Package         Version            
--------------- -------------------
mysql-connector 2.2.9              
pip             18.1               
setuptools      40.8.0.post20190503

我該如何解決這個問題? 感謝您提供任何信息。

雖然節點安裝了 mysql,但容器沒有。 日志告訴您的是, impressions-agg_1/app/app.py中包含一個腳本,該腳本試圖加載 mysql 但找不到它。

您是否創建了impressions-agg_1 RUN pip install mysql步驟添加到其 Dockerfile。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM