在Windows中,当我启动pyspark shell时,出现错误:
2019-04-20 08:11:34 ERROR Shell:397 - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
但是,在发生此错误之后,我的pyspark shell开始正常运行,并且在运行pyspark并在其上运行代码没有问题。但是,我每次都会收到此错误,而且我不确定如何消除它。
我已经正确设置了环境变量(就像许多针对此问题的建议一样),并且在正确的bin文件夹中有winutils.exe。 (我在Hadoop的相应bin文件夹中也有winutils.exe和hadoop.dll)。我相信,如果没有设置这些东西,pyspark shell甚至将无法工作。
作为参考,我的环境变量设置为:
我为系统变量(除了用户变量)放置了相同的变量。
Hadoop也可以正常运行并启动(除了显示50070 UI,而显示8080 UI,尽管这可能是一个单独的问题)。
这仅仅是一个不会消失的缓存错误吗?有什么建议可以摆脱它吗?谢谢!
答案 0 :(得分:0)
我解决了这个问题!该错误不再显示。我只是对这些文件进行了以下更改:“ conf \ spark-env.sh> set HADOOP_HOME = C:\ hadoop;在conf \ spark-defaults.conf> spark.driver.extraJavaOptions -Djava.library.path = C: / hadoop / bin”
该用户在其评论中建议:
Could not locate executable C:\hadoop\bin\winutils.exe in the hadoop binaries
因此,除了在/ bin中具有适当的winutils.exe之外,还要按照我上面的描述进行设置,您的环境变量也必须在我上面指定的文件中进行添加。那么在Windows上本地运行pyspark时应该没有任何问题或错误!