为什么spark在运行大文件时比python慢?

5lhxktic  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(350)

我知道使用apachespark的一个主要原因是使事情比使用python函数“手动”更快。
但是,我有一个叫做 bigger_file.txt 其中有2.7gb,我想计算某个单词(比如“word”)出现的次数。我用pyspark做了以下工作。

From Pyspark import SparkContext
sc = SparkContext()
rdd = sc.textFile('bigger_file.txt')
rdd.filter(lambda x: 'word' in x).count()

这个过程在我的电脑里大约需要40秒。它有一个16 GB ram的intel i7 6700处理器。我用的是ubuntu,但我也在windows上试过,spark在windows上运行得非常慢。另一方面,如果我简单地用python这样做:

num = 0
with open('bigger_file.txt') as f:
   for line in txt:
       if 'word' in line:
          num += 1

然后这个过程大约需要10秒钟。
我确信这与我需要的分区或执行器的数量有关,但是我从spark开始,我不确定什么是配置这个的最佳方式,我尝试的配置并不重要,spark所花的时间似乎基本相同。
所以不管怎样,问题是:我到底应该怎么做才能让spark更快地处理数据?特别是在windows中,处理所有这些数据大约需要40分钟,而仅仅使用python只需要几秒钟。在我看来,我做错了什么,因为否则我看不到使用spark的理由。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题