使用foreachPartition的时候发现,除println能正常打印外,其他的代码都没有执行,请大家们分析一下
foreachPartition为什么不执行其他代码呢?代码如下:
data.foreachPartition(row=>{
LogUtils.log.info("["+label+"]=" +"["+TaskContext.getPartitionId+"]")
LogUtils.print("["+label+"]=" +"["+TaskContext.getPartitionId+"]")
val mysqlUtils = new MysqlUtils(mysqlUrl, mysqlUser, mysqlPwd)
mysqlUtils.connect()
mysqlUtils.prePareSql(label,schema)
var count = 0
try{
row.foreach(
line=>{
LogUtils.print("["+label+"]=" +"["+TaskContext.getPartitionId+"]"+line.get(0))
LogUtils.log.info("["+label+"]=" +"["+TaskContext.getPartitionId+"]"+line.get(0))
mysqlUtils.saveWideTable(label,schema,line)
count = count+1
}
)
mysqlUtils.saveRptTable(label,count,TaskContext.getPartitionId)
}catch {
case e: Exception => {
e.printStackTrace()
mysqlUtils.rollback()
LogUtils.log.error(e.getMessage)
}
} finally {
mysqlUtils.commit()
mysqlUtils.disConnect()
}
})
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。