У меня была та же проблема. Некоторые из ответов sudo chmod -R 777 /tmp/hive/
, или для того, чтобы понизить искру с hadoop до 2.6, не сработали для меня. Я понял, что причиной этой проблемы для меня является то, что я выполнял SQL-запросы, используя sqlContext, вместо использования sparkSession.
sparkSession =SparkSession.builder.master("local[*]").appName("appName").config("spark.sql.warehouse.dir", "./spark-warehouse").getOrCreate()
sqlCtx.registerDataFrameAsTable(..)
df = sparkSession.sql("SELECT ...")
это отлично работает для меня сейчас.
Я видел эту ошибку на новом (2018) Mac, который поставляется с Java 10. Исправление было установить JAVA_HOME
на Java 8:
export JAVA_HOME=`usr/libexec/java_home -v 1.8`
Я получал такую же ошибку в среде Windows, и ниже трюк работал для меня.
в shell.py
искровая сессия определена с помощью .enableHiveSupport()
spark = SparkSession.builder\
.enableHiveSupport()\
.getOrCreate()
Удалить куст поддерживайте и переопределяйте искровую сессию, как показано ниже:
spark = SparkSession.builder\
.getOrCreate()
вы можете найти shell.py
в папке искровой установки. для меня это в "C:\spark-2.1.1-bin-hadoop2.7\python\pyspark"
Надеюсь, это поможет
Проблема для меня была решена путем отключения переменной окружения HADOOP_CONF_DIR . Он указывал на каталог конфигурации hadoop , а при запуске оболочки pyspark
переменная вызывала искру , чтобы инициировать кластер хаопов, который не был инициирован.
Итак, если вы включили переменную HADOOP_CONF_DIR , вам нужно запустить кластер с кластером usoop, прежде чем использовать искру оболочки
. Или вы необходимо отключить переменную.
Вам не хватает банды с искровым ульем.
Например, если вы работаете на Scala 2.11 с помощью Spark 2.1, вы можете использовать эту банку.
https://mvnrepository.com/artifact/org.apache.spark/spark-hive_2.11/2.1.0
Spark 2.1.0 - Когда я запускаю его с опцией клиента пряжи - я не вижу этой проблемы, но режим кластера пряжи дает «Ошибка при создании экземпляра» org.apache.spark.sql.hive.HiveSessionState ': ".
Ищем ответ.