foreachPartition

来源:9-13 -需求一统计结果写入到MySQL

纪墨

2019-04-18

 /**
     * 将统计结果写入到MySQL中
     */
    try {
      videoAccessTopNDF.foreachPartition(partitionOfRecords => {
        val list = new ListBuffer[DayVideoAccessStat]

        partitionOfRecords.foreach(info => {
          val day = info.getAs[String]("day")
          val cmsId = info.getAs[Long]("cmsId")
          val times = info.getAs[Long]("times")
 
          list.append(DayVideoAccessStat(day, cmsId, times))
        })

        StatDAO.insertDayVideoAccessTopN(list)
      })

老师,我在跑9-13小节的这段代码时,发现StatDAO.insertDayVideoAccessTopN(list)的list实际上只有一个对象,每一次循环插入一条记录,list中始终只有一个对象,没有达到批量提交的效果。
图片描述

我把 StatDAO.insertDayVideoAccessTopN(list)这行代码放在foreachPartition循环外,又发现list中没有对象。

写回答

1回答

Michael_PK

2019-04-18

我现在在外面没法和git上的代码对比,你拿这代码和git上的代码对比下,是不是哪写的有误

0
0

以慕课网日志分析为例 进入大数据Spark SQL的世界

快速转型大数据:Hadoop,Hive,SparkSQL步步为赢

1644 学习 · 1129 问题

查看课程