这只是一个简单的程序,它计算日志文件中的行数。日志文件约为6GB。我运行了以下两个程序:
常规Python程序
import datetime
begining = datetime.datetime.now()
if __name__ == "__main__":
num_lines = sum(1 for line in open('/Users/victor/access.log'))
print "The file contains of %s lines" % num_lines
ending = datetime.datetime.now()
print "processed in: %s" % (ending - begining)
使用Python的Spark版本
^{pr2}$因为spark是用于并行处理的,所以我认为它应该比常规python程序更快。然而,在我运行了带有4个处理核心的spark版本之后,几乎需要45s来完成任务,而常规程序只需要8s。为什么?如何改进Spark版本使其比普通版本更快?
据我所知,Spark将文件分成许多块并并行处理,但仍需要一些时间来初始化作业。在这种情况下,初始化作业所需的时间与常规python程序处理时间(主要是加载文件时)相比太大了。如果我是正确的,Spark版本优于常规版本的文件的大小是多少?
目前没有回答
相关问题 更多 >
编程相关推荐