Я получил его на работу.Таким образом, при запуске Spark у вас есть две опции для ваших настроек "spark.sql.catalogImplementation" (куст или в памяти).Я использую Windows, и у меня была головная боль при настройке Hive для работы с pyspark.Ноутбук jupyter, на котором запущен pyspark, по какой-то причине не поддерживает эту настройку (по этой причине он работал).Однако при запуске интерактивного pyspark этот параметр работал со значением по умолчанию spark.sql.catalogImplementation = hive.Если вы хотите избежать головной боли улья, просто задайте параметр во время выполнения следующим образом:
pyspark --conf spark.sql.catalogImplementation=in-memory
Затем запустите эту строку, чтобы проверить, работает ли она:
spark.sql('''select 'spark' as hello ''').show()
Если это работает, товсе работает нормально.
Если вы хотите установить этот параметр по умолчанию, просто перейдите в каталог spark и отредактируйте файл conf / spark-defaults.conf и просто добавьте параметр «spark.sql.catalogImplementation = in-memory».Вероятно, изначально это будет файл TEMPLATE, поэтому обязательно сохраните его как файл .conf.После этого все, что вы запускаете в pyspark, у вас не должно возникнуть проблем с hive.
Другой способ проверить это - перейти в пользовательский интерфейс при запуске сеанса pyspark и проверить страницу среды (http://localhost:4041/environment/). Тамв «Spark Properties» вы можете увидеть, какое значение имеет spark.sql.catalogImplementation (я уверен, что вы также можете проверить это значение в интерактивной оболочке).
Опять же, я просто запускаю pyspark локально намоя Windows-машина, но теперь pyspark вместе с поддержкой dataframe без проблем работает как с ноутбуками jupyter, так и с интерактивной оболочкой!