前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【pyspark】parallelize和broadcast文件落盘问题(后续)

【pyspark】parallelize和broadcast文件落盘问题(后续)

原创
作者头像
runzhliu
发布2020-08-15 18:54:23
6770
发布2020-08-15 18:54:23
举报
文章被收录于专栏:容器计算

之前写过一篇文章,pyspark】parallelize和broadcast文件落盘问题,这里后来倒腾了一下,还是没找到 PySpark 没有删掉自定义类型的广播变量文件,因为用户的代码是一个 While True 的无限循环,类似下面的逻辑(下面的代码实际上 destroy 是可以删除落盘的广播变量文件的,但是用户的代码删不掉,因为没有仔细研究用户的代码 ,所以其实这个问题我感觉也不算 PySpark 的问题,只是在帮用户解决问题的时候另辟蹊径了 ,所以就记录下来了)。

代码语言:javascript
复制
class KK:
    def __init__(self):
        self._dummy = 'kk' * 10000000
        self.m = 'k'

def test(k):
    return k.value.m

def run():
    k = KK()
    a = sc.parallelize(list(range(1000)))
    broad_k = sc.broadcast(k)
    kk = a.map(lambda x: test(broad_k))
    kk.collect()
    broad_k.destroy()

while True:
    run()

Driver 的磁盘大小有效,如果这些变量文件不删除,迟早会把磁盘刷爆,Driver 进程就可能会挂掉,所以后来想到一个比较猥琐的方法 ,就是每次 loop 结束之前,或者下一个 loop 开始之后,把临时目录的文件删一次 ,因为广播变量的文件路径是固定,这个在 python 里还是很好实现的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档