【发布时间】:2019-06-05 15:01:46
【问题描述】:
我遇到了下面的例子:
lines = sc.textFile("some_file.txt") //line_1
lineswithFriday = lines.filter(lambda line: line.startwith("Friday")) //line_2
lineswithFriday.first(); //line_3
它也说
spark 仅扫描文件,直到找到以开头的第一行
friday。它不需要遍历整个文件。
我的问题是:这是否意味着 spark 会在内存中一一加载每一行,看看它是否以 Friday 开头,如果是则停在那里?
假设line_1 基于核心和输入块创建了三个分区。 line_2 将通过每个内核上的单独工作线程进行计算。
在line_3 上,一旦任何工作人员找到以Friday 开头的行,它就会停在那里?
【问题讨论】:
-
>在 line_3 上,一旦任何工作找到从星期五开始的第一行,它就会停在那里?执行者将完成他们的任务,他们不会在任务执行过程中停下来。在返回的结果集中,第一次出现。更多细节请尝试:
lineswithFriday.first().explain,详细执行计划请尝试:lineswithFriday.first().explain(True)
标签: apache-spark pyspark rdd