Apache Spark与Python:

2024-05-02 08:01:59 发布

您现在位置:Python中文网/ 问答频道 /正文

新来的火花。下载了所有内容,但运行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':"

另外,当我尝试时(按照http://spark.apache.org/docs/latest/quick-start.html的建议)

textFile = sc.textFile("README.md")

我得到:

NameError: name 'sc' is not defined

有什么建议吗?谢谢您!


Tags: inpyorgdefaultforsqlbinapache
3条回答

看起来您已经在上面的答案中找到了问题的第二部分的答案,但是对于通过'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应该能够找到所需的所有配置单元类。

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

如果没有,那是因为大多数示例假设您在pyspark控制台中测试代码,其中存在默认变量'sc'。

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

from pyspark import SparkContext, SparkConf

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

我在Windows7上也遇到了这个问题,它使用了预先构建的Spark2.2。以下是Windows用户的可能解决方案:

  1. 确保正确设置了所有环境路径,包括SPARK_PATHHADOOP_HOME等。

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

  3. 然后打开命令提示符作为管理,运行以下命令:

    winutils chmod 777 C:\tmp\hive

    注意:根据调用pysparkspark-shell的位置,驱动器可能不同

此链接应获得以下荣誉:see the answer by timesking

相关问题 更多 >