博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spark 插入数据到mysql时遇到的问题 org.apache.spark.SparkException: Task not serializable
阅读量:4359 次
发布时间:2019-06-07

本文共 1090 字,大约阅读时间需要 3 分钟。

报错问题: Exception in thread "main" org.apache.spark.SparkException: Task not serializable Caused by: java.io.NotSerializableException: org.apache.commons.dbcp2.PoolingDataSource$PoolGuardConnectionWrapper 出错的代码:
def saveMonthToMysql(everymonth_avg:RDD[(String, Float, String)])={  DBs.setup()  DB.localTx(implicit session =>{    everymonth_avg.foreach(r=>{      SQL("insert into price_month(name, avgprice, uploaddate) values(?,?,?)")        .bind(r._1,r._2,r._3)        .update()        .apply()    })  }  )}
 
猜测原因可能是传入RDD了 解决方法:
新建一个scala class  saveMonthToMysql放到里面并且将传入的参数改成
(String, Float, String) 而不是
RDD[(String, Float, String)])
object Save {  DBs.setup()def saveMonthToMysql(everymonth_avg:(String, Float, String))={    DB.localTx(implicit session =>{      SQL("insert into price_month_copy1(name, avgprice, uploaddate) values(?,?,?)")        .bind(everymonth_avg._1,everymonth_avg._2,everymonth_avg._3)        .update()        .apply()    }    )  }  }

使用的时候用rdd调用就可以

 
everymonth_avg.foreach(x=>{      Save.saveMonthToMysql(x)    })
 

 

 

转载于:https://www.cnblogs.com/lq0310/p/10880691.html

你可能感兴趣的文章
CSS学习
查看>>
Centos 安装lnmp完整版
查看>>
【转】Eclipse和PyDev搭建完美Python开发环境(Ubuntu篇)
查看>>
redis安装和配置
查看>>
2016424王启元 Exp5 msf基础应用
查看>>
Differences between page and segment
查看>>
Jdk与Tomcat配置与安装
查看>>
关于一个Java web与JFrame的深度结合
查看>>
VB连数据库conn.open的参数
查看>>
《信息安全系统设计基础》实验三
查看>>
SpringBoot Docs
查看>>
解决sublime text 2总是在新窗口中打开文件(标签中打开)
查看>>
VUE AntDesign DatePicker设置默认显示当前日期
查看>>
WIN32窗口模板
查看>>
859. Buddy Strings - LeetCode
查看>>
[置顶] 关键字弹出动画
查看>>
支付宝api指南
查看>>
二叉树的广度优先遍历、深度优先遍历的递归和非递归实现方式
查看>>
docker-compose部署kafka
查看>>
IOS中NSUserDefaults的用法(轻量级本地数据存储)
查看>>