【问题标题】:connect Java Spark Sql to Mysql将 Java Spark Sql 连接到 Mysql
【发布时间】:2021-01-09 20:22:23
【问题描述】:

我正面临这个我无法解决的问题。我正在编写一个带有 MySQL 集成的 javaspark 代码。我可以看到对此有一个小修复。

package JavaSpark.Javs.SQL;

import java.util.Properties;

import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;


public class sparkSqlMysql {


private static final org.apache.log4j.Logger LOGGER = org.apache.log4j.Logger.getLogger(sparkSqlMysql.class);

private static final String MYSQL_CONNECTION_URL = "jdbc:mysql://localhost:3306/BCG";
private static final String MYSQL_USERNAME = "root";
private static final String MYSQL_PWD = "mypassword";

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 * from testLoad";
     // Load MySQL query result as Dataset
    Dataset<Row> jdbcDF =
            sparkSession.read()
                    .jdbc(MYSQL_CONNECTION_URL, dbTable, connectionProperties);
  }
}

当我执行这给我一个错误

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)

出了什么问题,我该如何解决?

【问题讨论】:

    标签: java apache-spark apache-spark-sql


    【解决方案1】:

    dbTable 应该只是表名,而不是查询。

        final String dbTable = "testLoad";
        Dataset<Row> jdbcDF =
                sparkSession.read()
                        .jdbc(MYSQL_CONNECTION_URL, dbTable, connectionProperties);
        jdbcDF.show(); // just for testing 
    

    【讨论】:

      【解决方案2】:

      您可以使用括在括号中并带有别名的查询:

      final String dbTable = "(select * from testLoad) t";
      

      您也可以使用变量dbTable中的表名,如另一个答案中所述。

      【讨论】:

        猜你喜欢
        • 2015-11-16
        • 2020-08-08
        • 1970-01-01
        • 1970-01-01
        • 2015-03-18
        • 1970-01-01
        • 2022-01-01
        • 2014-06-11
        相关资源
        最近更新 更多