关于循环插入的问题

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

weixin_慕设计2423553

2019-08-12

val df = spark.sql("select count(1) times, day, cmsId from access_logs where day = '20170511' " +
      "and cmsType = 'video' group by day,cmsId order by times desc")
    val
 val list = new ListBuffer[DayVideoAccessStat]
    df.foreach(info => {
        var day = info.getAs[Int]("day")
        var cmsId = info.getAs[Long]("cmsId")
        var times = info.getAs[Long]("times")
        list.append(DayVideoAccessStat(day.toString, cmsId, times))
      })
    StatDao.insertDayVideoAccessTopN(list)```
为什么我这样写,每次循环完list的长度还是0,我是在for之外创建的list啊
写回答

2回答

weixin_慕设计2423553

提问者

2019-08-12

第一次循环

//img.mukewang.com/szimg/5d50f3d3091d7b1d16160240.jpg

第二次循环开始

//img.mukewang.com/szimg/5d50f42c096a146a13920282.jpg



0
0

weixin_慕设计2423553

提问者

2019-08-12

但是每次在

var day = info.getAs[Int]("day")
       var cmsId = info.getAs[Long]("cmsId")
       var times = info.getAs[Long]("times")

这里面都能取到值

0
4
Michael_PK
回复
weixin_慕设计2423553
好像是没放到list中去呢,你对比下git上的代码,或者换个数据结构装下试试
2019-08-12
共4条回复

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

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

1644 学习 · 1129 问题

查看课程