Jupyter Notebook运行PySpark评分统计代码持续报错求排查建议
PySpark ml-100k评分统计报错修复方案
报错可能原因
- 语法缩进错误:代码末尾for循环下的
print语句没有缩进,Python强制要求循环体内的代码必须缩进4个空格,这是最直接的语法报错触发原因。 - SparkContext重复初始化报错:Jupyter Notebook中多次运行代码单元格时,已存在的SparkContext实例会和新初始化的实例冲突,导致启动失败。
- 文件路径无效:需要确认
file:///SparKContent/ml-100k/u.data路径和你本地u.data文件的实际存放路径一致,路径拼写、大小写错误都会触发文件找不到报错。
修复后完整代码
import findspark findspark.init() from pyspark import SparkConf, SparkContext import collections # 提前停止已存在的SparkContext,避免重复初始化冲突 try: sc.stop() except: pass conf = SparkConf().setMaster("local").setAppName("RatingsHistogram") sc = SparkContext(conf = conf) # 此处替换为你本地u.data文件的实际绝对路径 lines = sc.textFile("file:///SparKContent/ml-100k/u.data") ratings = lines.map(lambda x: x.split()[2]) result = ratings.countByValue() sortedResults = collections.OrderedDict(sorted(result.items())) # 修复缩进问题 for key, value in sortedResults.items(): print("%s %i" % (key, value))
原始报错截图


内容的提问来源于stack exchange,提问作者Rud0lph
相关产品推荐
相关产品推荐

