在 spark 环境中运行 python 程序时出错
Posted
技术标签:
【中文标题】在 spark 环境中运行 python 程序时出错【英文标题】:error while running a python program in spark environment 【发布时间】:2015-11-17 06:56:04 【问题描述】:我使用的是 spark 1.3.0。
我在 spark python shell 中运行 python 程序时遇到问题。
这就是我提交作业的方式:
/bin/spark-submit progname.py
我发现的错误是,
NameError: 名称 'sc' 未定义
在那条线上。
有什么想法吗? 提前致谢
【问题讨论】:
【参考方案1】: ## Imports
from pyspark import SparkConf, SparkContext
## CONSTANTS
APP_NAME = "My Spark Application"
##OTHER FUNCTIONS/CLASSES
## Main functionality
def main(sc):
rdd = sc.parallelize(range(1000), 10)
print rdd.mean()
if __name__ == "__main__":
# Configure OPTIONS
conf = SparkConf().setAppName(APP_NAME)
conf = conf.setMaster("local[*]")
#in cluster this will be like
#"spark://ec2-0-17-03-078.compute-#1.amazonaws.com:7077"
sc = SparkContext(conf=conf)
# Execute Main functionality
main(sc)
【讨论】:
我试图复制粘贴上面的程序并运行它。 IndentationError: expected an indented block 我收到此错误。所以我更麻烦你了。但非常感谢你的帮助 if 语句后有 /t(做了 4 个空格)吗? 是的,先生。现在我收到此错误 zipimport.ZipImportError: can't decompress data; zlib 不可用 如果您不介意,您可以提供您的电子邮件 ID。我会把截图发给你。抱歉又给你添麻烦了。 [link] askubuntu.com/questions/661039/… 你会在这里找到答案【参考方案2】:conf = pyspark.SparkConf()
这就是你应该如何创建 SparkConf 对象。
您还可以使用链接来做一些事情,例如设置应用程序名称等
conf = pyspark.SparkConf().setAppName("My_App_Name")
然后传递这个配置变量来创建火花上下文。
【讨论】:
【参考方案3】:Spark 程序必须做的第一件事是创建一个 SparkContext 对象,它告诉 Spark 如何访问集群。要创建 SparkContext,您首先需要构建一个包含应用程序信息的 SparkConf 对象。
conf = SparkConf().setAppName(appName).setMaster(master)
sc = SparkContext(conf=conf)
【讨论】:
很抱歉再次询问。你能告诉我如何建立一个 sparkConf 吗?在终端?还是在哪里?再次感谢。 使用 new SparkConf() 创建一个 SparkConf 对象,它将从任何 spark 加载值。* Python 系统属性 appName 参数是您的应用程序在集群 UI 上显示的名称。 master 是 Spark、Mesos 或 YARN 集群 URL,或者是在本地模式下运行的特殊“本地”字符串 对不起。感谢您的帮助。但我再次抛出错误。我不知道如何解决。可能是我不知道正确的语法。 :( conf = SparkConf().setAppname("README.md").setMaster("/home/nikitha/Downloads/spark-1.5.0-bin-hadoop2.4") sc = SparkContext(conf=conf) textFile= sc.textFile("README.md") 我这样给出并尝试使用 /bin/spark-submit progname.py 运行,但错误是 NameError: name 'SparkConf' is not defined 将 .master 设置为本地以上是关于在 spark 环境中运行 python 程序时出错的主要内容,如果未能解决你的问题,请参考以下文章
运行Spark测试时出现ClassCastException
在 Zeppelin 0.7.1 中运行 Spark 代码时出现 NullPointerException
从 apache Spark 运行 java 程序时出现 ClassNotFound 异常
spark提交jar包时出现unsupported major.minor version 52.0错误的解决方案