为什么pyspark在windows上比在linux上慢那么多?

omhiaaxx  于 2021-05-24  发布在  Spark
关注(0)|答案(0)|浏览(301)

好吧,我对apachespark还不熟悉,我试着用python运行一些基本的脚本,看看它是什么样子。现在我正在尝试下面的python脚本,它使用pyspark来计算某个单词(在本例中,单词“word”)出现在目录中的一堆python文件中的示例:

from pyspark import SparkContext
import sys
import os

def get_files(path):
    ls = ''
    for i in os.walk(path):
        directory, ls_files = i[0], i[2]
        for file in ls_files:
            if file.endswith('.py') and not file.startswith('_'):
                path = os.path.join(directory, file)
                ls += path
                ls += ','
    return ls[0:-1]

if __name__ == '__main__':
    if len(sys.argv) != 2:
        print('This program only accpets one argument as input.')
    else:
        files = get_files(sys.argv[1])
        sc = SparkContext()
        num = sc.textFile(files).flatMap(lambda x: x.split(' ')).filter(lambda x: 'word' in x).count()
        print(f'*********\'word\' appears {num} times')

如您所见,我正在使用sparkconf的所有默认选项。
好吧,如果我试着在windows下运行这个简单的程序,把一个10mb左右的文件夹和460.py文件作为参数传递,大约需要3分钟。在同一台电脑上,我尝试了完全相同的事情,用同样的文件夹,使用ubuntu,实际上需要3秒钟。
如此强烈的时代差异如何解释?我可以理解,也许这些程序中有一些是为unix系统设计的,但归根结底,它是同一个处理器,在所有8个核上并行运行多个任务,所以在windows上运行如此之慢对我来说并没有多大意义。

暂无答案!

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

相关问题