我想使用 AWS 粘合作业从 Mysql 实例读取过滤数据。由于胶水 jdbc 连接不允许我下推谓词,因此我试图在我的代码中显式创建 jdbc 连接。
我想使用 jdbc 连接对 Mysql 数据库运行带有 where 子句的选择查询,如下所示
import com.amazonaws.services.glue.GlueContext
import org.apache.spark.SparkContext
import org.apache.spark.sql.SparkSession
object TryMe {
def main(args: Array[String]): Unit = {
val sc: SparkContext = new SparkContext()
val glueContext: GlueContext = new GlueContext(sc)
val spark: SparkSession = glueContext.getSparkSession
// Read data into a DynamicFrame using the Data Catalog metadata
val t = glueContext.read.format("jdbc").option("url","jdbc:mysql://serverIP:port/database").option("user","username").option("password","password").option("dbtable","select * from table1 where 1=1").option("driver","com.mysql.jdbc.Driver").load()
}
}
Run Code Online (Sandbox Code Playgroud)
它因错误而失败
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的“select * …