Где хранится расположение таблицы Delta? - PullRequest
0 голосов
/ 10 марта 2020

Мы только что переместились в Databricks Delta из паркета с помощью Hive metastore. Пока что все работает нормально, когда я пытаюсь распечатать местоположение новой таблицы Delta, используя DESCRIBE EXTENDED my_table, местоположение правильное, хотя оно отличается от того, которое найдено в базе данных hiveMetastore. Когда я обращаюсь к базе данных hiveMetastore, я могу успешно определить целевую таблицу (также провайдер правильно настроен на Delta). Чтобы получить предыдущую информацию, я выполняю объединение таблиц sds, dbs, tbls и table_params из hiveMetastore db, фильтруя по имени таблицы, как показано ниже:

val sdsDF = spark.read
  .format("jdbc")
  .option("url", activeConnection.url)
  .option("dbtable", "hiveMetastore.SDS")
  .option("user", activeConnection.user)
  .option("password", activeConnection.pwd)
  .load()

val tblsDf = spark.read
  .format("jdbc")
  .option("url", activeConnection.url)
  .option("dbtable", "hiveMetastore.TBLS")
  .option("user", activeConnection.user)
  .option("password", activeConnection.pwd)
  .load()

val dbsDf = spark.read
  .format("jdbc")
  .option("url", activeConnection.url)
  .option("dbtable", "hiveMetastore.DBS")
  .option("user", activeConnection.user)
  .option("password", activeConnection.pwd)
  .load()

val paramsDf = spark.read
  .format("jdbc")
  .option("url", activeConnection.url)
  .option("dbtable", "hiveMetastore.TABLE_PARAMS")
  .option("user", activeConnection.user)
  .option("password", activeConnection.pwd)
  .load()

val resDf = sdsDF.join(tblsDf, "SD_ID")
     .join(dbsDf, "DB_ID") 
     .join(paramsDf, "TBL_ID") 
     .where('TBL_NAME.rlike("mytable"))
     .select($"TBL_NAME", $"TBL_TYPE", $"NAME".as("DB_NAME"), $"DB_LOCATION_URI", $"LOCATION".as("TABLE_LOCATION"), $"PARAM_KEY", $"PARAM_VALUE")

Все предыдущие выполнены из блокнота данных.

Мой вопрос: почему я получаю два разных местоположения, даже если имя таблицы совпадает? Где находится правильное расположение таблиц Delta, если не в hiveMetastore db?

...