我想知道如何在Spark中使用sc.textfile.我的猜测是驱动程序一次读取文件的一部分,并将读取的文本分发给工作人员进行处理.或者是工作人员在没有驱动程序参与的情况下直接从文件中读取文本?
驱动程序查看文件元数据 – 检查它是否存在,检查目录中的文件是否是目录,并检查它们的大小.然后它将任务发送给工作人员,他们实际读取文件内容.通信本质上是“你读取这个文件,从这个偏移开始,这个长度.”
HDFS将大文件拆分成块,并且火花将(通常/经常)根据块拆分任务,因此跳过该偏移的过程将是有效的.
其他文件系统往往操作类似,但并非总是如此.如果编解码器不可拆分,压缩也可能会混乱此过程.
精彩评论