第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

pypy on PySpark

標(biāo)簽:
Spark

什么是pypy

简单的说,pypy 基于jit静态编译,相比cpython 动态解释执行,因此执行速度上会更高效,同时减少了内存使用。

http://pypy.org

对三方包的支持一直是pypy的软肋,特别是一些科学计算包,不过在最新的 pypy5.9 中终于对Pandas和NumPy提供了支持。

一个简单的例子:
test1:

import time
t = time.time()
i = 0for i in xrange(10**8):    continueprint time.time() - t

test2:

import time
t = time.time()
i = 0for i in xrange(10**8):
    i = i + 1print time.time() - t
casepypyCpython
test10.25s4.3s
test20.25s10s

tips:

不难发现,在 pure python 的测试中,一些场景会有几十倍的性能提升。

不过在Pandas和NumPy的性能测试中,发现pypy会比Cpython慢4x-5x。

可以使用Numpypy替代NumPy,性能又能得到提升:
原因参考:https://morepypy.blogspot.com/2017/10/how-to-make-your-code-80-times-faster.html

PySpark

webp

PySpark


在python driver端,SparkContext利用Py4J启动一个JVM并产生一个JavaSparkContext

RDD在python下的转换会被映射成java环境下PythonRDD。在远端worker机器上,PythonRDD对象启动一些子进程并通过pipes与这些子进程通信。

使用 pypy 则是将与SparkWorker通信的Cpython进程替换成pypy进程。

pypy on PySpark

可以在 Spark-env.sh 中设置 export PYSPARK_PYTHON =/path/to/pypy 或者提交程序时指定--conf spark.pyspark.python=/path/to/pypy等方式进行提交。

webp

加载python执行环境的代码

测试代码:

//filter
rdd.filter(lambda x:x['addr'] != 'beijing')

//mapimport redef simpleMobileVerify(phone):
    p2 = re.compile('^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}')
    phonematch = p2.match(phone)    if(phone):        return phone    else:        return Nonerdd.map(lambda x:simpleMobileVerify(x['accountMobile'])).filter(lambda x : x != None)
casepypyCpython
filter60s67s
map11s22s

在filter这种IO密集型的任务中提升不大,在计算密集型的任务中提升较为明显,提升比例与计算复杂度成正相关。

下图为一个计算指标任务的执行时间,其中红框部分使用pypy调度:

webp

执行耗时

结论:

在真实的pySpark任务中,根据不同类型的任务提升幅度不同,可以根据不同的业务场景以及使用的三方包,使用Cpython和pypy。



作者:breeze_lsw
链接:https://www.jianshu.com/p/c2df78b50a62


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消