Таблицы не найдены в Spark SQL после перехода с EMR на AWS Glue - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть задания Spark в EMR, и EMR настроен на использование каталога Glue для метаданных Hive и Spark.

Я создаю внешние таблицы Hive, и они появляются в каталоге Glue, и мои задания Spark могут ссылаться на них в Spark SQL как spark.sql("select * from hive_table ...")

Теперь, когда я пытаюсь запустить тот же кодв работе Glue происходит сбой с ошибкой «таблица не найдена».Похоже, что задания Glue не используют каталог Glue для Spark SQL так же, как Spark SQL работает в EMR.

Я могу обойти это, используя API Glue и регистрируя кадры данных как временные представления:

create_dynamic_frame_from_catalog(...).toDF().createOrReplaceTempView(...)

, но есть ли способ сделать это автоматически?

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

Это был очень ожидаемый запрос функции (для использования Glue Data Catalog с заданиями Glue ETL), который был недавно выпущен.При создании новой работы вы найдете следующую опцию

Use Glue data catalog as the Hive metastore

. Вы также можете включить ее для существующей работы, отредактировав работу и добавив --enable-glue-datacatalog в работу.параметры, не имеющие значения

0 голосов
/ 22 февраля 2019

Вместо использования SparkContext.getOrCreate() вы должны использовать SparkSession.builder().enableHiveSupport().getOrCreate(), при этом enableHiveSupport() является важной частью, которая отсутствует.Я думаю, что, вероятно, происходит то, что ваша работа Spark на самом деле не создает ваши таблицы в Glue, а скорее создает их во встроенном метастаборе Hive Spark, поскольку вы не включили поддержку Hive.

...