专栏首页容器计算【pyspark】parallelize和broadcast文件落盘问题(后续)
原创

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

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

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 里还是很好实现的。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Amdahl定律

    Amdahl 定律(Amdahl’s law)是并行计算领略一个非常著名的定律。由 Gene Amdahl 于1967年提出。Amdahl 定律描述的是数据规模...

    runzhliu
  • Git 如何压缩 commit

    今天同事突然问我,由于在给老大的开源项目提 pr 的时候,自己比较长时间没有 rebase 的老大的项目 master 分支了,而自己提交的 commit 又很...

    runzhliu
  • Spark Opeartor的指标体系

    spark-on-k8s-operator,下文简称 Spark Operator, 背景知识就不介绍太多了,本文主要分享一下 Spark Operator 的...

    runzhliu
  • Python多态

    多态:同类对象的多种形态,一个接口多种实现,(以封装和继承为前提),不同的子类调用相同的方法,产生不同的结果

    橙子探索测试
  • 通俗易懂,从函数 def 到类 Class

    摘要:初学 Python 过程中,我们可能习惯了使用函数(def),在开始学习类(Class)的用法时,可能会觉得它的写法别扭,类的代码写法也不像函数那么简单直...

    周萝卜
  • 系统架构师论文-论企业应用集成(-集成ERP/PDM/E-mail)

    本文讨论了某公司的应用系统集成项目。某公司为了应对市场变化的需要,决定把公司几个主要的应用系统ERP系统,PDM系统,E-mail系统集成在一起,系统集成完成后...

    cwl_java
  • Python之面向对象二

    面向对象的三大特性: 继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 pyt...

    新人小试
  • 新的正则化神器:DropBlock(Tensorflow实践)

    在我们测试MNIST上,3层卷积+ dropXXX,所有参数均为改变的情况下,可以提升MNIST准确率1〜2点。

    SCP-173
  • 面向对象的三大特性

    继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:...

    人生不如戏
  • TestDog-接口测试unittest+requests实战

    什么是单元测试?单元测试负责对最小的软件设计单元(模块)进行验证,它使用软件设计文档中对模块的描述作为指南,对重要的程序分支进行测试以发现模块中的错误pytho...

    wencheng

扫码关注云+社区

领取腾讯云代金券