scala—如何使用jdbc在spark的其他数据库中获取表的create语句

yyyllmsg  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(330)

问题陈述:
我有一个impala数据库,其中有多个表
我正在创建到impala的spark jdbc连接,并将这些表加载到spark dataframe中,以便进行如下验证:

val df = spark.read.format("jdbc")
              .option("url","url")
              .option("dbtable","tablename")
              .load()

现在下一步,我的实际问题是,我需要找到create语句,该语句用于在impala中创建表
由于我不能像下面这样运行命令,因为它会产生错误,所以无论如何我都可以为impala中的表获取showcreate语句。

val df = spark.read.format("jdbc")
              .option("url","url")
              .option("dbtable","show create table tablename")
              .load()
izkcnapc

izkcnapc1#

也许您可以使用sparksql“本机”来执行以下操作

val createstmt = spark.sql("show create table <tablename>")

生成的Dataframe将有一个列(类型字符串),其中包含一个完整的 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...

相关问题