Hadoop Sparksession错误与配置单元有关

Hadoop Sparksession错误与配置单元有关,hadoop,apache-spark,hive,pyspark,spark-dataframe,Hadoop,Apache Spark,Hive,Pyspark,Spark Dataframe,我的操作系统是Windows10 from pyspark.conf import SparkConf sc = SparkContext.getOrCreate() spark = SparkSession.builder.enableHiveSupport().getOrCreate() 这段代码给了我下面的错误 Py4JJavaError回溯最近的调用 最后的 ~\Documents\spark\spark-2.1.0-bin-hadoop2.7\python\pyspark\sql\u

我的操作系统是Windows10

from pyspark.conf import SparkConf
sc = SparkContext.getOrCreate()
spark = SparkSession.builder.enableHiveSupport().getOrCreate()
这段代码给了我下面的错误

Py4JJavaError回溯最近的调用 最后的 ~\Documents\spark\spark-2.1.0-bin-hadoop2.7\python\pyspark\sql\utils.py 在装饰中*a,**千瓦 62尝试: -->63返回f*a,**千瓦 64除py4j.protocol.Py4JJavaError外的其他错误为e:

~\Documents\spark\spark-2.1.0-bin-hadoop2.7\python\lib\py4j-0.10.4-src.zip\py4j\protocol.py 在get_return_valueanswer、gateway_client、target_id、name中 318调用{0}{1}{2}时出错。\n。 ->319格式目标标识、名称、值 320其他:

Py4JJavaError:调用o22.sessionState时出错: java.lang.IllegalArgumentException:实例化时出错 'org.apache.spark.sql.hive.HiveSessionState':位于 org.apache.spark.sql.SparkSession$.org$apache$spark$sql$SparkSession$$reflectSparkSession.scala:981 在 org.apache.spark.sql.SparkSession.sessionState$lzycutesparksession.scala:110 在 org.apache.spark.sql.SparkSession.sessionStateSparkSession.scala:109 在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法在 sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:57 在 sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 java:606 at py4j.reflection.MethodInvoker.invokeMethodInvoker.java:244 at py4j.reflection.ReflectionEngine.invokeReflectionEngine.java:357 at py4j.Gateway.invokeGateway.java:280 at py4j.commands.AbstractCommand.invokeMethodAbstractCommand.java:132 在py4j.commands.CallCommand.executeCallCommand.java:79 at py4j.GatewayConnection.runGatewayConnection.java:214at java.lang.Thread.runThread.java:745由以下原因引起: java.lang.reflect.InvocationTargetException位于 sun.reflect.nativeConstructor附件mpl.newInstance0本机方法 在 sun.reflect.NativeConstructorAccessorImpl.newInstanceNativeConstructorAccessorImpl.java:57 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstanceDelegatingConstructorAccessorImpl.java:45 位于java.lang.reflect.Constructor.newInstanceConstructor.java:526 在 org.apache.spark.sql.SparkSession$.org$apache$spark$sql$SparkSession$$reflectSparkSession.scala:978 ... 13更多原因:java.lang.IllegalArgumentException:错误 实例化“org.apache.spark.sql.hive.hiveExternalCalCatalog”时: 在 org.apache.spark.sql.internal.SharedState$.org$apache$spark$sql$internal$SharedState$$reflectSharedState.scala:169 在 org.apache.spark.sql.internal.SharedState.SharedState.scala:86 在 org.apache.spark.sql.SparkSession$$anonfun$sharedState$1.applySparkSession.scala:101 在 org.apache.spark.sql.SparkSession$$anonfun$sharedState$1.applySparkSession.scala:101 在scala.Option.getOrElseOption.scala:121处 org.apache.spark.sql.SparkSession.sharedState$lzycutesparksession.scala:101 在 org.apache.spark.sql.SparkSession.sharedStateSparkSession.scala:100 在 org.apache.spark.sql.internal.SessionState.SessionState.scala:157 在 org.apache.spark.sql.hive.HiveSessionState.HiveSessionState.scala:32 ... 18更多原因:java.lang.reflect.InvocationTargetException 位于sun.reflect.nativeConstructor附件mpl.newInstance0Native 方法在 sun.reflect.NativeConstructorAccessorImpl.newInstanceNativeConstructorAccessorImpl.java:57 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstanceDelegatingConstructorAccessorImpl.java:45 位于java.lang.reflect.Constructor.newInstanceConstructor.java:526 在 org.apache.spark.sql.internal.SharedState$.org$apache$spark$sql$internal$SharedState$$reflectSharedState.scala:166 ... 26更多原因:java.lang.reflect.InvocationTargetException 位于sun.reflect.nativeConstructor附件mpl.newInstance0Native 方法在 sun.reflect.NativeConstructorAccessorImpl.newInstanceNativeConstructorAccessorImpl.java:57 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstanceDelegatingConstructorAccessorImpl.java:45 位于java.lang.reflect.Constructor.newInstanceConstructor.java:526 在 org.apache.spark.sql.hive.client.IsolatedClientLoader.CreateClientSolatedClientLoader.scala:264 在 org.apache.spark.sql.hive.HiveUtils$.newclientformetadatadatahiveutils.scala:366 在 org.apache.spark.sql.hive.HiveUtils$.newclientformetadatadatahiveutils.scala:270 在 org.apache.spark.sql.hive.HiveExternalCatalog.HiveExternalCatalog.scala:65 ... 31其他原因:java.lang.RuntimeException: java.lang.RuntimeException:无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient位于 org.apache.hadoop.hive.ql.session.SessionState.startSessionState.java:522 在 org.apache.spark.sql.hive.client.HiveClientImpl.HiveClientImpl.scala:192 ... 39更多原因 d by:java.lang.RuntimeException:无法 实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

我的完整代码在这里

from pyspark.sql import SQLContext 
from pyspark.sql import SparkSession 
import findspark 
findspark.init('C:/Users/asus/Documents/spark/spark-2.1.0-bin-hadoop2.7') 
import pyspark from pyspark.conf 
import SparkConf sc = SparkContext.getOrCreate() 
spark = SparkSession.builder.enableHiveSupport().getOrCreate()

从您发布的代码来看,您似乎是一名Java开发人员,或者您急于粘贴代码。在python中,您不会像在Java中那样使用其类型编写变量,即 SparkContext sc=SparkContext.getOrCreate

另外,从Spark版本2.0+开始,您需要创建一个SparkSession对象,它是应用程序的入口点。您可以从该对象本身派生SparkContext。尝试创建另一个SparkContext sc=SparkContext.getOrCreate会导致错误。这是因为根据设计,在给定的单个JVM中只能运行单个SparkContext。如果需要新上下文,则需要使用sc.stop停止先前创建的SparkContext

从堆栈跟踪和代码中可以看出,我还认为您正在本地测试应用程序,并且没有在本地计算机上安装Hadoop和Hive,这会导致错误:

原因:java.lang.RuntimeException:java.lang.RuntimeException: 无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient位于 org.apache.hadoop.hive.ql.session.SessionState.startSessionState.java:522 在

您可以在Windows计算机上安装Hadoop和Hive,并尝试以下代码段

from pyspark.sql import SparkSession

spark = SparkSession \
.builder \
.appName('CalculatingGeoDistances') \
.enableHiveSupport() \
.getOrCreate()

sc = spark.sparkContext

我们需要完整的错误信息。我已经更新了@eliasah