Avec une nouvelle installation de Spark 2.1, je reçois une erreur lors de l'exécution de la commande pyspark.
Traceback (most recent call last):
File "/usr/local/spark/python/pyspark/Shell.py", line 43, in <module>
spark = SparkSession.builder\
File "/usr/local/spark/python/pyspark/sql/session.py", line 179, in getOrCreate
session._jsparkSession.sessionState().conf().setConfString(key, value)
File "/usr/local/spark/python/lib/py4j-0.10.4-src.Zip/py4j/Java_gateway.py", line 1133, in __call__
File "/usr/local/spark/python/pyspark/sql/utils.py", line 79, in deco
raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.IllegalArgumentException: u"Error while instantiating 'org.Apache.spark.sql.Hive.HiveSessionState':"
J'ai Hadoop et Hive sur la même machine. Hive est configuré pour utiliser MySQL pour le métastore. Je n'ai pas eu cette erreur avec Spark 2.0.2.
Est-ce que quelqu'un peut me diriger dans la bonne direction?
J'ai eu le même problème. Certaines des réponses Sudo chmod -R 777 /tmp/Hive/
, ou de rétrograder une étincelle avec hadoop à 2.6 ne fonctionnaient pas pour moi. Je me suis rendu compte que ce qui me posait le problème, c’était que je faisais des requêtes SQL avec sqlContext au lieu d’utiliser sparkSession.
sparkSession =SparkSession.builder.master("local[*]").appName("appName").config("spark.sql.warehouse.dir", "./spark-warehouse").getOrCreate()
sqlCtx.registerDataFrameAsTable(..)
df = sparkSession.sql("SELECT ...")
cela fonctionne parfaitement pour moi maintenant.
J'obtenais la même erreur dans l'environnement Windows et l'astuce ci-dessous a fonctionné pour moi.
dans Shell.py
la session d'allumage est définie avec .enableHiveSupport()
spark = SparkSession.builder\
.enableHiveSupport()\
.getOrCreate()
Supprimez le support Hive et redéfinissez la session d'allumage comme suit:
spark = SparkSession.builder\
.getOrCreate()
vous pouvez trouver Shell.py
dans votre dossier d'installation d'étincelle ..__ pour moi c'est dans "C:\spark-2.1.1-bin-hadoop2.7\python\pyspark"
J'espère que cela t'aides
Spark 2.1.0 - Lorsque je l'exécute avec l'option client fil - Je ne vois pas ce problème, mais le mode cluster de fil donne le message "Erreur lors de l'instanciation de 'org.Apache.spark.sql.Hive.HiveSessionState':".
Je cherche toujours une réponse.
Le problème pour moi a été résolu en désactivant HADOOP_CONF_DIR variable d’environnement. Cela pointait vers répertoire de configuration hadoop et lors du démarrage de pyspark
Shell, la variable permettait à spark de lancer le cluster hadoop qui n’était pas initialisé.
Donc, si vous avez HADOOP_CONF_DIR variable activé, vous devez démarrer le cluster hadoop avant de pouvoir utiliser spark shells
Ou vous devez désactiver la variable.
J'ai constaté cette erreur sur un nouveau Mac (2018) fourni avec Java 10. Le correctif était de définir Java_HOME
sur Java 8:
export Java_HOME=`usr/libexec/Java_home -v 1.8`
J'avais cette erreur en essayant de lancer pyspark et spark-Shell quand mon HDFS n'a pas été démarré.
Vous manquez le pot à étincelles Hive.
Par exemple, si vous utilisez Scala 2.11, avec Spark 2.1, vous pouvez utiliser ce fichier .jar.
https://mvnrepository.com/artifact/org.Apache.spark/spark-Hive_2.11/2.1.0
Moi aussi je me débattais en mode cluster. Ajout du fichier Hive-site.xml du répertoire sparkconf; si vous avez un cluster hdp, il devrait être situé dans/usr/hdp/current/spark2-client/conf Cela fonctionne pour moi.