【发布时间】:2020-08-08 19:42:06
【问题描述】:
我想连接 spark 和 MySQL。我尝试了以下代码:
public class Get_Data_From_MySQL implements Serializable {
private static final org.apache.log4j.Logger LOGGER = org.apache.log4j.Logger.getLogger(Get_Data_From_MySQL.class);
private static final String MYSQL_CONNECTION_URL = "jdbc:mysql://localhost:3306/test";
private static final String MYSQL_USERNAME = "root";
private static final String MYSQL_PWD = "";
private static final SparkSession sparkSession =
SparkSession.builder().master("local[*]").appName("Spark2JdbcDs").getOrCreate();
public static void main(String[] args) {
//JDBC connection properties
final Properties connectionProperties = new Properties();
connectionProperties.put("user", MYSQL_USERNAME);
connectionProperties.put("password", MYSQL_PWD);
connectionProperties.put("driver", "com.mysql.jdbc.Driver");
final String dbTable =
"(select age from employe";
//Load MySQL query result as Dataset
Dataset<Row> jdbcDF =
sparkSession.read()
.jdbc(MYSQL_CONNECTION_URL, dbTable, "age", 10001, 499999, 10, connectionProperties);
我得到这个错误:
Exception in thread "main" java.sql.SQLException: Communication link failure: Mauvais 'handshake'
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:659)
在这一行:
Dataset<Row> jdbcDF =sparkSession.read().jdbc(MYSQL_CONNECTION_URL, dbTable, "age", 10001, 499999, 10, connectionProperties);
我检查了MySQL用户和密码,一切都正确。
谢谢。
【问题讨论】:
标签: java mysql apache-spark intellij-idea