请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于循环插入的问题

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啊

正在回答 回答被采纳积分+3

2回答

提问者 weixin_慕设计2423553 2019-08-12 13:08:00

第一次循环

https://img1.sycdn.imooc.com//szimg/5d50f3d3091d7b1d16160240.jpg

第二次循环开始

https://img1.sycdn.imooc.com//szimg/5d50f42c096a146a13920282.jpg



0 回复 有任何疑惑可以回复我~
提问者 weixin_慕设计2423553 2019-08-12 10:15:41

但是每次在

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

这里面都能取到值

0 回复 有任何疑惑可以回复我~
  • 你到这里debug下,看看是不是前面值就没放进去
    回复 有任何疑惑可以回复我~ 2019-08-12 11:02:37
  • 提问者 weixin_慕设计2423553 回复 Michael_PK #2
    都能取到值 但是每次循环完就 list的size还是0
    回复 有任何疑惑可以回复我~ 2019-08-12 13:05:47
  • 每次循环完好像重新new了个list 但是最后循环出来的list的size还是0
    回复 有任何疑惑可以回复我~ 2019-08-12 13:09:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信