如何在 MySQL 中使用 Spark DataFrame
How to use Spark DataFrame with MySQL
好的,我知道我可以使用 jdbc 连接器通过以下命令创建 DataFrame:
val jdbcDF = sqlContext.load("jdbc",
Map("url" -> "jdbc:mysql://localhost:3306/video_rcmd?user=root&password=123456",
"dbtable" -> "video"))
但是我得到了这个错误:java.sql.SQLException: No suitable driver found for ...
并且我尝试使用这两个命令将 jdbc jar 添加到 spark_path 但失败了:
spark-shell --jars mysql-connector-java-5.0.8-bin.jar
SPARK_CLASSPATH=mysql-connector-java-5.0.8-bin.jar spark-shell
我的 Spark 版本是 1.3.0,而 Class.forName("com.mysql.jdbc.Driver").newInstance
有效。
您可能想尝试 mysql-connector-java-5.1.29-bin.jar
这是因为数据框确实在 class 路径中找到了 Mysql Connector Jar。这可以通过将 jar 添加到 spark class 路径来解决,如下所示:
编辑/spark/bin/compute-classpath.sh为
CLASSPATH="$CLASSPATH:$ASSEMBLY_JAR:yourPathToJar/mysql-connector-java-5.0.8-bin.jar"
保存文件并重启spark。
好的,我知道我可以使用 jdbc 连接器通过以下命令创建 DataFrame:
val jdbcDF = sqlContext.load("jdbc",
Map("url" -> "jdbc:mysql://localhost:3306/video_rcmd?user=root&password=123456",
"dbtable" -> "video"))
但是我得到了这个错误:java.sql.SQLException: No suitable driver found for ...
并且我尝试使用这两个命令将 jdbc jar 添加到 spark_path 但失败了:
spark-shell --jars mysql-connector-java-5.0.8-bin.jar
SPARK_CLASSPATH=mysql-connector-java-5.0.8-bin.jar spark-shell
我的 Spark 版本是 1.3.0,而 Class.forName("com.mysql.jdbc.Driver").newInstance
有效。
您可能想尝试 mysql-connector-java-5.1.29-bin.jar
这是因为数据框确实在 class 路径中找到了 Mysql Connector Jar。这可以通过将 jar 添加到 spark class 路径来解决,如下所示:
编辑/spark/bin/compute-classpath.sh为
CLASSPATH="$CLASSPATH:$ASSEMBLY_JAR:yourPathToJar/mysql-connector-java-5.0.8-bin.jar"
保存文件并重启spark。