在用代码对结果进行地区分析时居然得到了一个小异常,想了半天没搞明白…
可能时自己的partition by不熟悉,请求指教
val topNByRegion = regionInfo.select(
regionInfo("day"),
regionInfo("city"),
regionInfo("cmsId"),
regionInfo("times"),
row_number().over(Window.partitionBy(regionInfo("city"))
.orderBy(regionInfo("times").desc)).as("times_rank")
).filter($"times_rank" <= 3)
20161110 内蒙古自治区 1154 601 3
20161110 全球 133 414 1
20161110 全球 420 376 2
20161110 全球 267 349 3
20161110 甘肃省 214 893 1
20161110 甘肃省 144 592 2
。。。
20161110 全球 144 2073 1
20161110 全球 746 1439 2
20161110 全球 643 1182 3
20161110 江苏省 981 2060 1
20161110 江苏省 132 1536 2
在mysql中输入以下代码发现的错误
select * from videoRegion order by city,times_rank;
运行结果:
| 20161110 | 云南省 | 333 | 527 | 3 |
| 20161110 | 全球 | 133 | 414 | 1 |
| 20161110 | 全球 | 144 | 2073 | 1 |
| 20161110 | 全球 | 420 | 376 | 2 |
| 20161110 | 全球 | 746 | 1439 | 2 |
| 20161110 | 全球 | 267 | 349 | 3 |
| 20161110 | 全球 | 643 | 1182 | 3 |