当前位置:   article > 正文

异常java.io.NotSerializableException

java.io.notserializableexception

这是spark保护函数的异常:传递局部可序列化变量或者顶级对象中的函数始终是安全的。
例如

    val fun = new searchFun
//    println(fun.isMath("rui"))
    cj.map(word => {
      fun.isMath(word)
    }).take(3).foreach(println)

class searchFun{
  def isMath(s : String) : Boolean = {
    s.contains("rui")
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

以上会报 java.io.NotSerializableException 异常。

spark中函数要想在rdd中传递,是要序列化的,如果出现了java.io.NotSerializableException,那么说明这个函数是不可序列化的。

解决:
1、实现类继承java.io.Serializable 接口

class searchFun extends Serializable {
  def isMath(s : String) : Boolean = {
    s.contains("rui")
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5

  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/543133
推荐阅读
相关标签
  

闽ICP备14008679号