Может ли Spark-sql работать без установки улья? - PullRequest
0 голосов
/ 17 декабря 2018

Я установил spark 2.4.0 на чистый экземпляр Ubuntu.Фреймы данных Spark работают нормально, но когда я пытаюсь использовать spark.sql для фрейма данных, такого как в приведенном ниже примере, я получаю сообщение об ошибке «Не удалось получить доступ к metastore. Этот класс не должен быть доступен во время выполнения».

spark.read.json("/data/flight-data/json/2015-summary.json")
.createOrReplaceTempView("some_sql_view") </p>

<p>spark.sql("""SELECT DEST_COUNTRY_NAME, sum(count)
FROM some_sql_view GROUP BY DEST_COUNTRY_NAME
""").where("DEST_COUNTRY_NAME like 'S%'").where("sum(count) > 10").count()

Большинство исправлений, которые я вижу в связи с этой ошибкой, относятся к средам, в которых установлен куст.Требуется ли куст, если я хочу использовать SQL-операторы против фреймов данных в spark или я что-то упускаю

Чтобы продолжить с моим исправлением.Проблема в моем случае заключалась в том, что в моей системе по умолчанию использовалась Java 11.Как только я установил Java 8 по умолчанию, metastore_db начал работать.

1 Ответ

0 голосов
/ 17 декабря 2018

Да, мы можем запускать запросы spark sql на spark без установки hive, по умолчанию hive использует mapred в качестве механизма выполнения, мы можем настроить hive для использования spark или tez в качестве механизма выполнения для гораздо более быстрого выполнения наших запросов.Hive on spark Hive использует Hive Metastore для выполнения запросов улья.В то же время, sql запросы могут быть выполнены через spark.Если spark используется для выполнения простых SQL-запросов или не подключен к серверу метастазов кустов, он использует встроенную базу данных derby, и в домашней папке пользователя, выполняющей запрос, будет создана новая папка с именем metastore_db .

...