pyspark.sql.utils.IllegalArgumentException: u «Ошибка при создании экземпляра при чтении csv [duplicate]

Я решаю эту проблему, открыв Службы, затем запустив службу Sql Server (Sqlexpress).

7
задан Kring 22 March 2017 в 05:11
поделиться

7 ответов

У меня была та же проблема. Некоторые из ответов 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 ...")

это отлично работает для меня сейчас.

7
ответ дан marilena.oita 18 August 2018 в 21:52
поделиться
  • 1
    Спасибо за указатель на разрешения каталога / tmp / hive. Кажется, это трюк! – Kring 13 April 2017 в 17:19
  • 2
    Эта ошибка может быть вызвана всеми тремя упомянутыми вами возможностями (/ tmp / hive rights, Hadoop conf или старым кодом Spark 1.6). Спасибо, что упомянул всех. – Bastien 21 September 2017 в 14:29
  • 3
    любое другое решение, которое не является chmod 777? Это никогда не является хорошей идеей, предоставляющей этот тип perm для dir (говорящий по безопасности) – AlessioG 5 February 2018 в 17:12
  • 4
    @AlessioG мой ответ не рекомендует это решение, потому что он не работал для меня, и я не уверен, что это основная причина проблемы в целом. – marilena.oita 7 February 2018 в 12:14

Я видел эту ошибку на новом (2018) Mac, который поставляется с Java 10. Исправление было установить JAVA_HOME на Java 8:

export JAVA_HOME=`usr/libexec/java_home -v 1.8`

0
ответ дан Deepak 18 August 2018 в 21:52
поделиться

Я получал такую ​​же ошибку в среде 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"

Надеюсь, это поможет

13
ответ дан Nim J 18 August 2018 в 21:52
поделиться
  • 1
    Хорошо. Благодарю. Видел. +1 – Ekaba Bisong 7 August 2017 в 15:04
  • 2
    работал для меня на окнах ... нужно запускать несколько локально, прежде чем я вытащу его на искровой сервер на главном сервере. +1 – krinker 18 September 2017 в 15:35

Проблема для меня была решена путем отключения переменной окружения HADOOP_CONF_DIR . Он указывал на каталог конфигурации hadoop , а при запуске оболочки pyspark переменная вызывала искру , чтобы инициировать кластер хаопов, который не был инициирован.

Итак, если вы включили переменную HADOOP_CONF_DIR , вам нужно запустить кластер с кластером usoop, прежде чем использовать искру оболочки

. Или вы необходимо отключить переменную.

1
ответ дан Ramesh Maharjan 18 August 2018 в 21:52
поделиться

Вам не хватает банды с искровым ульем.

Например, если вы работаете на Scala 2.11 с помощью Spark 2.1, вы можете использовать эту банку.

https://mvnrepository.com/artifact/org.apache.spark/spark-hive_2.11/2.1.0

0
ответ дан user3542930 18 August 2018 в 21:52
поделиться

Spark 2.1.0 - Когда я запускаю его с опцией клиента пряжи - я не вижу этой проблемы, но режим кластера пряжи дает «Ошибка при создании экземпляра» org.apache.spark.sql.hive.HiveSessionState ': ".

Ищем ответ.

3
ответ дан Vjender M 18 August 2018 в 21:52
поделиться
0
ответ дан Vivek Jain 30 October 2018 в 09:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: