Из микропрограммных документов, Если вы не укажете, (в случае внешней таблицы ...) база данных и таблицы хранятся в каталоге hive/warehouse/
в контейнере по умолчанию кластера Hive по умолчанию.
Вы также можете использовать эти параметры,
case: команда hive : если вы хотите знать, что по команде будет местоположение, где он хранится.
describe formatted <table name>
Случай: Если вы используете Spark
def getHiveTablePath(tableName: String, spark: SparkSession):String =
{
import org.apache.spark.sql.functions._
val sql: String = String.format("desc formatted %s", tableName)
val result: DataFrame = spark.sql(sql).filter(col("col_name") === "Location")
result.show(false) // just for debug purpose
val info: String = result.collect().mkString(",")
val path: String = info.split(',')(1)
path
}
Пример:
вызывающий будет
println(getHiveTablePath("src", spark)) // you can prefix schema if you have
Результат (я выполнил локальный файл: / ниже, если его hdfs hdfs: // придет):
+--------+------------------------------------+-------+
|col_name|data_type |comment|
+--------+--------------------------------------------+
|Location|file:/Users/hive/spark-warehouse/src| |
+--------+------------------------------------+-------+
file:/Users/hive/spark-warehouse/src