Apache spark Spark—如何获取配置单元视图或表指向的快照名称
在配置单元中,可以使用命令获取与视图相关的元数据:Apache spark Spark—如何获取配置单元视图或表指向的快照名称,apache-spark,hive,Apache Spark,Hive,在配置单元中,可以使用命令获取与视图相关的元数据: show create table myDataBase.myTable 这将返回如下结果: CREATE VIEW `myDataBase.myTable` AS SELECT `myTable_20170816073203`.`col1`, `myTable_20170816073203`.`col2`, `myTable_20170816073203`.`col3`, `myTable_20170816073203`.`col4` F
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`
val metadata = sqlContext.sql("show create table myDataBase.myTable")
可以从Spark运行配置单元查询,然后将结果存储在变量中,执行以下操作:
CREATE VIEW `myDataBase.myTable` AS SELECT `myTable_20170816073203`.`col1`, `myTable_20170816073203`.`col2`, `myTable_20170816073203`.`col3`, `myTable_20170816073203`.`col4` FROM `myDataBase`.`myTable_20170816073203`
val metadata = sqlContext.sql("show create table myDataBase.myTable")
问题是我无法从输出中读取特定字段,即一个数据帧,其中有一列名为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`
有人知道获取视图指向的快照值的其他方法吗?为什么不知道
metadata.first.getString(0)
或
根据@user9787952所指出的,我发现下面的方法是解决这个问题的一种可能的方法。但这可能是实现这一目标的更有效方法
metadata.as[String].first.split(“”“).last.dropRight(1)
它将返回快照的日期部分
20170816073203
嗨,这就是我在考虑的。然后根据“.”应用拆分并获取最后一个元素。但我希望有一个更干净的选择。