spark—如何获取配置单元视图或表指向的快照名称

lnlaulya  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(324)

在配置单元中,可以使用命令获取与视图相关的元数据:

show create table myDataBase.myTable

这将返回如下结果:

CREATE VIEW `myDataBase.myTable` AS SELECT `myTable_20170816073203`.`col1`, `myTable_20170816073203`.`col2`, `myTable_20170816073203`.`col3`, `myTable_20170816073203`.`col4`  FROM `myDataBase`.`myTable_20170816073203`

可以从spark运行配置单元查询,然后将结果存储在变量中,执行以下操作:

val metadata =  sqlContext.sql("show create table myDataBase.myTable")

问题是我无法从输出中读取特定字段,即一个Dataframe,其中有一列名为result:

org.apache.spark.sql.DataFrame = [result: string]

获取的信息与运行配置单元查询时的信息相同:

CREATE VIEW `myDataBase.myTable` AS SELECT `myTable_20170816073203`.`col1`, `myTable_20170816073203`.`col2`, `myTable_20170816073203`.`col3`, `myTable_20170816073203`.`col4`  FROM `myDataBase`.`myTable_20170816073203`

有人知道获取视图所指向的快照值的其他方法吗?

b09cbbtk

b09cbbtk1#

你为什么不呢

metadata.first.getString(0)

metadata.as[String].first
ny6fqffe

ny6fqffe2#

根据@user9787952所指出的,我发现下面的方法是解决这个问题的一个可能方法。但这可能是一个更有效的方法来实现这一点。 metadata.as[String].first.split('_').last.dropRight(1) 它将返回快照的日期部分

20170816073203

相关问题