一、背景介绍:
在制作复杂报表的时候,发现出来的报表并没有按照视图里设置的排序进行排序,比如我这边设置的产品类别排序是饮料类、小食类:
但是报表出来的排序是小食类、饮料类:
二、产生原因:
派生表聚合时会按照字符串进行自动排序,因此有可能会和视图里的原有排序不一样,
本质上是由于派生表排序不是由spark计算的,因此无法继承视图排序。
三、解决方案:
如果需要继承视图里的原有排序,可以使用基于原表的动态公式。
需要按照实际场景增加一个或多个视图,引用到模板里用于排序
以此案例来讲,如果仅需要按照产品分类进行排序,那么需要拖一个产品维度的视图:
此时,出来的产品分类排序就是正确的:
小结:
只有原表的排序才会生效,派生表的排序是不生效的,需要借助其他视图的原表来实现排序的效果。