Как проверить, является ли таблица Hive внешней таблицей, используя Spark SQL Scala API (не SQL) - PullRequest
1 голос
/ 06 ноября 2019

Я использую следующий код (Spark SQL Scala API), чтобы проверить, является ли таблица Hive внешней таблицей, но у API Table нет метода, позволяющего ответить, является ли данная таблица внешней таблицей.

Я бы спросил, как я могу проверить, является ли таблица Hive внешней таблицей, используя Spark SQL Scala API (не SQL)

Код:

val spark = SparkSession.builder().master("local").appName("SparkSQLTest1-1").enableHiveSupport().getOrCreate()
val table = spark.catalog.getTable("db1.t1")

Ответы [ 3 ]

3 голосов
/ 06 ноября 2019

Вы можете использовать API каталога:

sparkSession.catalog.listTables("db1")
.where($"name"==="t1")
.select($"tableType")
.as[String]
.first

MANAGED означает таблицу, управляемую кустами, EXTERNAL будет внешней таблицей улья

1 голос
/ 06 ноября 2019

Вы можете получить эту информацию непосредственно из desc formated:

scala> spark.sql("desc formatted db1.t1")
    .filter($"col_name" === "Type")
    .select("data_type")
    .as[String]
    .head
res11: String = EXTERNAL
0 голосов
/ 06 ноября 2019

Вы можете использовать команду show create table. И определить тип таблицы из результата.

spark.sql("show create table db1.t1").show(false)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...