如何从 jdbc 连接创建 spark-sql 数据库

How to create spark-sql database from jdbc connection

我正在使用 spark-sql,我想创建查询以连接数据库中的不同表。

Apache spark 和连接已经在工作 示例:

CREATE TEMPORARY VIEW jdbcTable
USING org.apache.spark.sql.jdbc
OPTIONS (
  url "jdbc:mysql://XXX.XXX.XXX.XXX/mydatabase",
  driver "com.mysql.cj.jdbc.Driver",
  dbtable "mydatabase.mytable1",
  user "XXXX",
  password "xxx"
);
spark-sql> SELECT * FROM jdbcTable;
1       my_data
Time taken: 3.91 seconds, Fetched 1 row(s)

我需要的是使用 jdbc 连接来使用或创建我的数据库,以便能够 运行 查询连接表。

基于 Spark SQL Syntax,我尝试了以下选项:

spark-sql> USE DATABASE mydatabase
         > USING org.apache.spark.sql.jdbc
         > OPTIONS (
         >   url "jdbc:mysql://XXX.XXX.XXX.XXX/mydatabase",
         >   driver "com.mysql.cj.jdbc.Driver",
         >   user "XXXX",
         >   password "xxx"
         > );
Error in query:
mismatched input 'mydatabase' expecting {<EOF>, ';'}(line 1, pos 13)


spark-sql> CREATE DATABASE mydatabase
         > USING org.apache.spark.sql.jdbc
         > OPTIONS (
         >   url "jdbc:mysql://XXX.XXX.XXX.XXX/mydatabase",
         >   driver "com.mysql.cj.jdbc.Driver",
         >   user "XXXX",
         >   password "xxx"
         > );
Error in query:
mismatched input 'USING' expecting {<EOF>, ';'}(line 2, pos 0)

有没有办法在 spark-sql 命令行中从 jdbc 连接使用或创建数据库?

答案是。参考spark官方文档:

The Spark SQL CLI is a convenient tool to run the Hive metastore service in local mode and execute queries input from the command line.

无法使用 JDBC 直接连接到外部 mysql 服务。