问题描述
问题陈述:
-
我正在创建与Impala的Spark JDBC连接,并将这些表加载到spark数据帧中,以进行这样的验证,效果很好:
val df = spark.read.format("jdbc") .option("url","url") .option("dbtable","tablename") .load()
-
下一步,我的实际问题是我需要找到 create语句,该语句用于在Impala本身中创建表
-
由于我无法运行如下所示的命令,因为它给出了错误,所以无论如何我都可以获取Impala中存在的表的show create语句。
val df = spark.read.format("jdbc") .option("url","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...