1、取的数据中含有在默认分区中的脏数据。
例:
原python翻页sql为:select * ,row_number() over () as rownum from hive.table_name
where trim(dd)='20230605'
导致取到的数据中含有不属于dd=20230605该分区的数据。比如会取到部分dd为空的数据
修改后sql:
select column_list,row_number() over () as rownum
from (select * from hive.table_name where trim(dd)='20230605') t;
或者
select column_list,row_number() over (partition by dd) as rownum from hive.table_name
where trim(dd)='20230605'
或者
select column_list,row_number() over () as rownum from hive.table_name
where trim(dd)='20230605'
解决问题的办法就是把要取的字段都显式列出来或者先把指定分区的数据查出来,然后再套一层排序。