Экранирование ключевых слов в имени БД в spark SQL

#scala #apache-spark #apache-spark-sql

Вопрос:

У меня есть база данных с именем serde_dwh

Я пытаюсь получить доступ к одной из его таблиц с помощью Spark SQL.

 val record_count = spark.sql("SELECT COUNT(*) FROM serde_dwh.tableA")
 

Поскольку имя базы данных начинается с serd , я получаю следующую ошибку:

ТАБЛИЦА ошибок: Не удалось получить поле из serde: org.apache.hive.hcatalog.data.JsonSerDe

Я пытался с:

 val record_count = spark.sql("SELECT COUNT(*) FROM `serde_dwh.tableA`")
 

Но Я Получил:

Исключение NoSuchTableException: Ошибка таблицы или представления

База данных и таблица доступны. Как скрыться serde в имени базы данных в Spark SQL?

Ответ №1:

Обратные кавычки должны обходить каждый идентификатор следующим образом:

 SELECT COUNT(*) FROM `serde_dwh`.`tableA`
 

Комментарии:

1. Я пытался. val record_count = spark.sql(«ВЫБЕРИТЕ КОЛИЧЕСТВО(*) ИЗ serde_dwh . tableA «), все еще не работает. полученная таблица ошибок: Не удается получить поле из serde: org.apache.hive.hcatalog.data. ДжонСерДе