Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ApacheSpark与Python:错误_Python_Apache Spark_Pyspark - Fatal编程技术网

ApacheSpark与Python:错误

ApacheSpark与Python:错误,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,新的火花。下载的所有内容都正常,但当我运行pyspark时,会出现以下错误: Type "help", "copyright", "credits" or "license" for more information. Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties Setting default log level to "WARN". To adjust logging level

新的火花。下载的所有内容都正常,但当我运行pyspark时,会出现以下错误:

Type "help", "copyright", "credits" or "license" for more information.
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
17/02/05 20:46:58 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Traceback (most recent call last):
File "C:\Users\Carolina\spark-2.1.0-bin-hadoop2.7\spark-2.1.0-bin-hadoop2.6\spark-2.1.0-bin-hadoop2.6\spark-2.1.0-bin-hadoop2.6\bin\..\python\pyspark\shell.py", line 43, in <module>
spark = SparkSession.builder\
File "C:\Users\Carolina\spark-2.1.0-bin-hadoop2.7\spark-2.1.0-bin-hadoop2.6\spark-2.1.0-bin-hadoop2.6\spark-2.1.0-bin-hadoop2.6\python\pyspark\sql\session.py", line 179, in getOrCreate
session._jsparkSession.sessionState().conf().setConfString(key, value)
File "C:\Users\Carolina\spark-2.1.0-bin-hadoop2.7\spark-2.1.0-bin-hadoop2.6\spark-2.1.0-bin-hadoop2.6\spark-2.1.0-bin-hadoop2.6\python\lib\py4j-0.10.4-src.zip\py4j\java_gateway.py", line 1133, in __call__
File "C:\Users\Carolina\spark-2.1.0-bin-hadoop2.7\spark-2.1.0-bin-hadoop2.6\spark-2.1.0-bin-hadoop2.6\spark-2.1.0-bin-hadoop2.6\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':"
我得到:

NameError: name 'sc' is not defined

有什么建议吗?谢谢大家!

如果您是从pyspark控制台执行此操作,可能是因为您的安装不起作用

如果不是,那是因为大多数示例假设您正在pyspark控制台中测试代码,其中存在一个默认变量“sc”

您可以在脚本开始时使用以下代码自己创建SparkContext:

from pyspark import SparkContext, SparkConf

conf = SparkConf()
sc = SparkContext(conf=conf)

看起来您已经在上面的答案中找到了问题第二部分的答案,但是对于通过“org.apache.spark.sql.hive.HiveSessionState”错误到达这里的未来用户来说,这个类可以在spark hive jar文件中找到,如果不是用hive构建的,它不会与spark捆绑在一起

您可以在以下位置获得此罐子:

http://central.maven.org/maven2/org/apache/spark/spark-hive_${SCALA_VERSION}/${SPARK_VERSION}/spark-hive_${SCALA_VERSION}-${SPARK_VERSION}.jar

您必须将其放入SPARK_HOME/jars文件夹中,然后SPARK应该能够找到所需的所有配置单元类。

我在预装SPARK 2.2的Windows 7上也遇到了这个问题。下面是一个适用于Windows人员的可能解决方案:

确保正确设置了所有环境路径,包括SPARK\u路径、HADOOP\u HOME等

获取Spark Hadoop预构建包的正确版本的winutils.exe

然后以管理员身份打开cmd提示符,运行以下命令:

winutils chmod 777 C:\tmp\hive

注意:根据调用pyspark或spark shell的位置,驱动器可能会有所不同


这个链接应该是值得称赞的:

如果你在Mac电脑上安装了Spark并最终通过自制安装了Hive,@Eric Pettijohn和@user7772046的答案将不起作用。前者是因为Homebrew的Spark包含上述jar文件;后者的原因很简单,因为它是一个纯基于Windows的解决方案


受许可问题提示的启发,我提出了以下简单的解决方案:使用sudo启动pyspark。不再出现与配置单元相关的错误。

我删除了metastore\u db目录,然后一切正常。我正在macbook上做一些简单的开发——我运行pycharm将我的目录与服务器同步——我发现它拾取了特定于spark的目录并将其搞乱了。对于我来说,当我尝试启动交互式ipython pyspark shell时,出现了错误消息。

我的问题是这样的,因为我已将Hadoop设置为纱线模型,所以我的解决方案是启动hdfs和纱线

start-dfs.sh
start-yarn.sh

我遇到了一个错误:

raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.IllegalArgumentException: u"Error while instantiating 'org.apache.spark.sql.hive.HiveSessionStateBuilder'
这是因为我已经运行了。/bin/spark shell


因此,只需杀死spark外壳,然后重新运行。/bin/pyspark

您需要hadoop bin目录中的winutils competable。

您的spark安装似乎已关闭。在快速入门之前,您应该阅读并遵循以下步骤:从pyspark.context导入SparkContext sc=SparkContext.getOrCreate创建一个新的sc我猜它没有识别我的原始sc。在Spark 2.2.0中它存在,但我仍然得到相同的错误。似乎已经建议这样做了
raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.IllegalArgumentException: u"Error while instantiating 'org.apache.spark.sql.hive.HiveSessionStateBuilder'