Spark - Как получить имя снимка, на который указывает Hive View или Table - PullRequest
0 голосов
/ 14 мая 2018

В Hive можно получить метаданные, связанные с представлением, используя команду:

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`

Можно запускать запросы Hive из Spark, чтобы позже сохранить результат в переменной, выполнив что-то вроде:

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`

Кто-нибудь знает другой способ получить значение снимка, на который указывает представление?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Исходя из того, на что указал @ user9787952, я нашел следующий подход в качестве возможного решения этой проблемы.Но это может быть более эффективный способ добиться этого.

metadata.as[String].first.split('_').last.dropRight(1)

, который вернет часть даты снимка

20170816073203
0 голосов
/ 14 мая 2018

Почему ты не

metadata.first.getString(0)

или

metadata.as[String].first
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...