如何使用 JDBC 在 Spark 的其他数据库中获取 Table 的创建语句
How to get Create Statement of Table in some other database in Spark using JDBC
问题陈述:
我有一个 Impala 数据库,其中存在多个表
我正在创建与 Impala 的 Spark JDBC 连接,并将这些表加载到 spark 数据框中以进行验证,效果很好:
val df = spark.read.format("jdbc")
.option("url","url")
.option("dbtable","tablename")
.load()
现在下一步,我的实际问题是我需要找到 create 语句,它用于在 Impala 本身中创建表
因为我不能像下面那样运行命令,因为它给出错误,无论如何我可以为Impala.[=14=中存在的表获取show create语句]
val df = spark.read.format("jdbc")
.option("url","url")
.option("dbtable","show create table tablename")
.load()
也许您可以使用 Spark SQL“本地”执行类似
的操作
val createstmt = spark.sql("show create table <tablename>")
生成的数据框将有一个列(字符串类型),其中包含完整的 CREATE TABLE
语句。
但是,如果您仍然选择走 JDBC 路线,总有一个选项可以使用旧的 JDBC 界面。 Scala 理解 Java 中编写的所有内容,毕竟...
import java.sql.*
Connection conn = DriverManager.getConnection("url")
Statement stmt = conn.createStatement()
ResultSet rs = stmt.executeQuery("show create table <tablename>")
...etc...
问题陈述:
我有一个 Impala 数据库,其中存在多个表
我正在创建与 Impala 的 Spark JDBC 连接,并将这些表加载到 spark 数据框中以进行验证,效果很好:
val df = spark.read.format("jdbc") .option("url","url") .option("dbtable","tablename") .load()
现在下一步,我的实际问题是我需要找到 create 语句,它用于在 Impala 本身中创建表
因为我不能像下面那样运行命令,因为它给出错误,无论如何我可以为Impala.[=14=中存在的表获取show create语句]
val df = spark.read.format("jdbc") .option("url","url") .option("dbtable","show create table tablename") .load()
也许您可以使用 Spark SQL“本地”执行类似
的操作val createstmt = spark.sql("show create table <tablename>")
生成的数据框将有一个列(字符串类型),其中包含完整的 CREATE TABLE
语句。
但是,如果您仍然选择走 JDBC 路线,总有一个选项可以使用旧的 JDBC 界面。 Scala 理解 Java 中编写的所有内容,毕竟...
import java.sql.*
Connection conn = DriverManager.getConnection("url")
Statement stmt = conn.createStatement()
ResultSet rs = stmt.executeQuery("show create table <tablename>")
...etc...