小编Vic*_*ang的帖子

为什么我的Spark运行速度比纯Python慢​​?性能比较

Spark新手在这里.我尝试使用Spark在我的数据框架上做一些pandas动作,并且令人惊讶的是它比纯Python慢​​(即在Python中使用pandas包).这是我做的:

1)在Spark中:

train_df.filter(train_df.gender == '-unknown-').count()
Run Code Online (Sandbox Code Playgroud)

返回结果大约需要30秒.但使用Python需要大约1秒钟.

2)在Spark中:

sqlContext.sql("SELECT gender, count(*) FROM train GROUP BY gender").show()
Run Code Online (Sandbox Code Playgroud)

同样的事情,在Spark中大约需要30秒,在Python中需要1秒.

我的Spark比纯Python慢​​得多的几个原因:

1)我的数据集大约有220,000条记录,24 MB,而且这个数据集不足以显示Spark的扩展优势.

2)我的火花在本地运行,我应该在像Amazon EC这样的东西上运行它.

3)在本地运行是可以的,但我的计算能力并没有削减它.这是一款8 Gig RAM 2015 Macbook.

4)Spark很慢,因为我正在运行Python.如果我使用Scala,它会好得多.(Con论点:我听说很多人都在使用PySpark.)

哪一个最有可能是原因,还是最可信的解释?我很想听到一些Spark专家的意见.非常感谢你!!

python performance apache-spark apache-spark-sql pyspark

8
推荐指数
1
解决办法
4807
查看次数

NLTK - TypeError:tagged_words()得到一个意外的关键字参数'simplify_tags'

我刚刚关注了NLTK第5章,tagged_words()中的'simplify_tags'参数似乎是出乎意料的.我使用Python 3.4,PyCharm和标准NLTK包.

In[4]: nltk.corpus.brown.tagged_words()
Out[4]: [('The', 'AT'), ('Fulton', 'NP-TL'), ...]
In[5]: nltk.corpus.brown.tagged_words(simplify_tags = True)
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\IPython\core\interactiveshell.py", line 2883, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-5-c4f914e3e846>", line 1, in <module>
    nltk.corpus.brown.tagged_words(simplify_tags = True)
TypeError: tagged_words() got an unexpected keyword argument 'simplify_tags'
Run Code Online (Sandbox Code Playgroud)

没有simplify_tags运行此函数没有问题.我感谢任何建议或意见.谢谢!

nlp corpus nltk tagged-corpus python-3.x

5
推荐指数
2
解决办法
2346
查看次数