将 RDD 转换为可迭代对象:PySpark?

Convert an RDD to iterable: PySpark?

我有一个 RDD,我通过加载一个文本文件并对其进行预处理来创建它。我不想收集它并将其保存到磁盘或内存(整个数据),而是想将它传递给 python 中的某个其他函数,该函数一个接一个地使用可迭代的数据。

这怎么可能?

data =  sc.textFile('file.txt').map(lambda x: some_func(x))

an_iterable = data. ##  what should I do here to make it give me one element at a time?
def model1(an_iterable):
 for i in an_iterable:
  do_that(i)

model(an_iterable)

我相信你想要的是toLocalIterator():

data =  sc.textFile('file.txt').map(lambda x: some_func(x))
# you need to call RDD method() then loop
for i in data.collect():
  print i