在配置单元中,可以使用命令获取与视图相关的元数据:
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`
有人知道获取视图所指向的快照值的其他方法吗?
2条答案
按热度按时间b09cbbtk1#
你为什么不呢
或
ny6fqffe2#
根据@user9787952所指出的,我发现下面的方法是解决这个问题的一个可能方法。但这可能是一个更有效的方法来实现这一点。
metadata.as[String].first.split('_').last.dropRight(1)
它将返回快照的日期部分