我刚开始接触Spark,对任务的概念感到困惑。
请问有人能帮助我理解什么情况下动作(例如reduce)不在驱动程序中运行。
根据Spark教程:
"使用函数func(它需要两个参数并返回一个参数)聚合数据集的元素。该函数应该是可交换和可结合的,以便可以正确地并行计算。"
我目前正在尝试一个应用程序,该应用程序读取'n'个文件的目录,并计算单词数。
从Web UI上看,任务数量等于文件数量。所有reduce函数都在驱动节点上执行。
请问是否有场景使得reduce函数不在驱动程序中执行?任务是否总是包括“转换+操作”或只包括“转换”?