我的操作系统是Windows 10

from pyspark.conf import SparkConf
sc = SparkContext.getOrCreate()
spark = SparkSession.builder.enableHiveSupport().getOrCreate()

这段代码给我下面的错误



我的完整代码在这里
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。如果需要新的Context,则需要使用 sc.stop()停止先前创建的SparkContext。

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



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

from pyspark.sql import SparkSession

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

sc = spark.sparkContext

08-25 07:52
查看更多