如何解决如何使用JDBC在Spark的其他数据库中获取表的创建语句
问题陈述:
-
我有一个有多个表的Impala数据库
-
我正在创建与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...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。