【发布时间】:2021-01-04 09:27:57
【问题描述】:
我正在尝试复制 the given code 以查看 foreach 的工作原理,我尝试使用以下代码:
rdd = sc.parallelize([1,2,3,4,5])
def f(a):
print(a)
rdd.collect().foreach(f)
但它给出了以下错误:
AttributeError: 'list' 对象没有属性 'foreach'
我理解collect() 的返回类型是array(它是列表)并且它没有与之关联的foreach 属性的错误,但是我不明白这怎么行不通如果它在官方spark 3.0.1 文档中给出。我错过了什么。我正在使用Spark 3.0.1
【问题讨论】:
-
rdd.collect.foreach(println)是 Scala 构造,我相信。 -
@philantrovert 这就是我在代码中使用
f()的原因,现在这也有什么不同吗? -
它确实适用于 Scala,但为什么不在 python 中,因为我保留了语法 pythonic @philantrovert
标签: apache-spark rdd