我想了解foreach
方法的工作原理。在我的jupyter笔记本中,我尝试过:
def f(x): print(x)
a = sc.parallelize([1, 2, 3, 4, 5])
b = a.foreach(f)
print(type(b))
<class 'NoneType'>
我可以毫无问题地执行它,但除了print(type(b))
部分之外我没有任何输出。 foreach
不返回任何内容,只返回无类型。我不知道foreach
应该做什么,以及如何使用它。你能解释一下它的用途吗?
答案 0 :(得分:3)
foreach
是一个动作,不会返回任何内容;所以,你不能像你一样使用它,即将它分配给另一个变量,如b = a.foreach(f)
。来自Learning Spark,p。 41-42:
调整简单示例from the docs,在PySpark终端中运行:
>>> def f(x): print(x)
>>> a = sc.parallelize([1, 2, 3, 4, 5])
>>> a.foreach(f)
5
4
3
1
2
(注意:不确定Jupyter,但上面的代码不会在Databricks笔记本中产生任何打印结果。)
您也可以在this thread帮助中找到答案。