美文网首页
【spark】java.io.NotSerializableEx

【spark】java.io.NotSerializableEx

作者: DuLaGong | 来源:发表于2019-05-05 10:58 被阅读0次

    本来想模拟一个数据倾斜的实例,以及其各种解决方案,不料遇到一个报错:

    报错如下:

    Exception in thread "main" org.apache.spark.SparkException: Task not serializable

    .........

    Caused by: java.io.NotSerializableException: org.apache.spark.unsafe.types.UTF8String$IntWrapper

    spark的Task not serializable问题,但是我spark代码中没有使用外部变量,也没有用到实体类,报错的代码如下:

    user_rdd.join(record_rdd,record_rdd("uid")===user_rdd("borrower_id"),"left")

    .groupBy(user_rdd("regist_date"))

    .agg(sum("borrower_id"))

    .as("col2")

    .show()

    就是两个hive表的DataFrame数据集left join后做一个分组聚合操作而已,百思不得其解。

    试过各种方案以及网络搜索各种解决方案,发现是版本问题:

    我的版本是spark2.2.0的版本,修改maven的pom文件中的spark的版本为2.2.2,重新运行解决。

    注意:如果你改成spark2.4.0,对应的scala版本要用2.12,不然会报错:

    Exception in thread "main" java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V

    参考博文:

    https://blog.csdn.net/lsr40/article/details/80166644

    https://blog.csdn.net/u010834071/article/details/80506711

    相关文章

      网友评论

          本文标题:【spark】java.io.NotSerializableEx

          本文链接:https://www.haomeiwen.com/subject/aercoqtx.html