美文网首页
【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