我在jupyter笔记本上运行了下面的代码,它带来了以下错误消息:名称"xrange"范围未定义。我不知道我做错了什么,我已经安装了python-3.9]。有人帮忙吗?
from pyspark import SparkContext
import random
n = 100
heads = (sc.parallelize(xrange(n))
.map(lambda _: random.random())
.filter(lambda r: r < 0.5)
.count())
tails = n - heads
ratio = 1. *heads / n
print('heads =',heads)
print('tails =',tails)
print('ratio =',ratio)
xrange
是Python 2函数。在Python 3中,函数的名称已更改为range
。
有关更多信息,请阅读range
函数的文档。
在Python 2上,range
返回完整列表:
range(5)
[0, 1, 2, 3, 4]
并且xrange
返回了一个可迭代的对象。
在Python3上,range
返回一个可迭代对象:
x = range(5)
print(x) # range(0, 5)
print(next(x)) # 0
print(next(x)) # 1