将 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
我有一个 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