问题 将RDD转换为可迭代: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)

5523
2017-09-24 22:07


起源



答案:


我相信你想要的是 toLocalIterator()


14
2017-09-24 22:18





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

-1
2018-05-13 13:47