我对 Apache Spark 管道的懒惰有疑问。我确实理解火花变换和动作。
让我们举个例子:
以下代码段是一个转换,它返回文件夹中所有文件名的RDD。
val filenames = sc.wholeTextFiles("pathToDirectory").map( _ match { case (filename, content) => filename })
如果我执行动作:
filenames.count
spark正在执行所有定义的转换,包括加载'文件名' RDD和'内容' RDD到内存中即使内容'未使用
是否有更好的方法来编写spark变换,例如:在执行操作时不会评估未使用的代码(例如上一个示例中的'内容' RDD)?
感谢您的反馈。