此错误可能是由于未正确安装Mysql JDBC驱动程序或未将其添加到Spark驱动程序路径中造成的。要解决此问题,请遵循以下步骤:
下载Mysql JDBC驱动程序:官网(https://dev.mysql.com/downloads/connector/j/)上下载mysql-connector-java-{version}.jar文件。将其上传到EMR集群中的某个目录。
添加Mysql JDBC驱动程序到Spark的驱动程序路径中: 在EMR主节点上,运行以下命令添加Mysql JDBC驱动程序到Spark的驱动程序路径中:
sudo ln -s /usr/share/java/mysql-connector-java.jar /usr/lib/spark/jars/mysql-connector-java.jar
from pyspark.sql import SparkSession
spark = SparkSession.builder
.appName("Connect MySQL")
.config("spark.driver.extraClassPath", "/usr/lib/spark/jars/mysql-connector-java.jar")
.getOrCreate()
url = 'jdbc:mysql://hostname:port/database' table = 'table_name' user = 'username' password = 'password'
df = spark.read.format('jdbc').option('url',url).option('dbtable',table).option('user',user).option('password',password).load()
请确保替换“hostname”,“port”,“database”,“table_name”,“username”和“password”为您的Mysql数据库的相关信息。
然后,您应该能够成功连接Mysql数据库并读取数据。