- 博客(4)
- 收藏
- 关注
原创 Python多线程-阻塞主线程
写在前面:前面已经有Scala实现多线程了,那么用Python实现多线程又有什么区别和好处?Scala里实现多线程,启的是同一个Application,计算多线程任务的task都是同时返回到driver中进行管理。而这些task的完成情况和状态管理会一直保存在driver中,直到Application结束。如果模型迭代次数很多,或者需要写循环来做多次计算时,这很容易导致driver的内存溢出。所以,为了同时实现多线程,而又不至于让Application任务太大、task太多、driver内存溢出
2021-09-26 12:26:10 1329
原创 记一次奇葩的Spark内存溢出OOM
错误信息如下:org.apache.spark.memory.SparkOutOfMemoryError: Unable to acquire 1048576 bytes of memory, got 65536内存溢出的位置:做JOIN操作的时候,内存溢出了。首先,定位下任务使用的资源,其次,调参数--driver-cores 4 \--driver-memory 8G \--executor-cores 4 \--executor-memory 16G \-..
2021-09-22 19:18:36 1511
原创 Scala常用小处理方法汇总
本文介绍case语法与match 、map结合使用完成业务中常见的分情况匹配或分情况讨论的场景问题。1、match ...case ...2、map ...case ...
2021-09-08 23:19:31 485
原创 Scala多线程之任务的异同、同步执行实践
近期使用Spark开发ML机器学习模型的时候,其中有一个部分需要交替搜索最优参数。待搜索的参数空间有上万维,如果参数搜索串行执行,那么上千次的迭代计算大约需要10个小时,对于线上部署的模型是万万不可取的。考虑到参数搜索部分的每次的计算量并不大,只是需要重复上万次,有一些迭代的搜索计算是不相互依赖的,可以并行计算。那么就考虑使用多线程的思想,并行执行一些计算任务。因为参数的更新需要等这些并行的计算任务都完成后 取他们计算结果汇总后的最大值,所以需要的是同步执行,即需要block阻塞。如果将多线
2021-09-02 01:07:33 756
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人