qq_35265056 2018-12-05 07:25 采纳率: 0%
浏览 788
已结题

可否让spark算子执行到某一步时,通过某些控制条件,让整个spark程序停止,或者在那一步保存结果到文件?

有这么一个需求:让rdd1执行map(或其他算子),当出现满足条件的情况时,控制整个spark程序停止,或是保存停止结果到文件(优先保存结果到文件),而不继续执行后续步骤,为了提高速度。

 //示例,大概就是这么一个意思:当出现值为5的行,停止程序或是保存结果
 val rdd2 = rdd1.map(x =>{
           if(x==5){
                   //整个spark程序停止,或是保存停止结果到文件
           }   
           ...........
     }
 )

rdd2.count()

有没有什么方法可以实现呢?

  • 写回答

2条回答

  • 月半杰 2018-12-05 08:51
    关注

    没怎么看明白这个问题,如果只是(通过某些控制条件,在某一步保存结果到文件)可以filter需要的条件,并将结果保存。

    添加了一个breakable块,看看这样能达到优化条件不

    import scala.collection.mutable.ArrayBuffer
    import scala.util.control.Breaks._
    
    val ab= new ArrayBuffer[String]()
    var pp=0
    rdd1.foreach(aa=>
    {
    if(aa.contains("条件")){
    pp+=1
    ab += aa
    breakable{
    if (pp == 2) {  
    println(ab)
       break    
    }}}
    })
    
    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制