(◍•ᴗ•◍)ゝ 2021-12-13 19:51 采纳率: 0%
浏览 36
已结题

spark-sql 的sort by的坑

问题遇到的现象和发生背景

最新在sprk-sql上开发,发现sort by的坑.
话不多说,
表结构

acct_idcurrency_codestmt_datebal_flagremark
A0011562019019
A001156201902Z
A0011562019030
A001156201904S
A001156201905B
A001156201906B
问题相关代码,请勿粘贴截图
select acct_id,currency_code, concant(collect_list(bal_flag)) bal_flag
from (
select acct_id,currency_code,stmt_date,bal_flag
from
table
distribute by acct_id,currency_code
sort by acct_id,currency_code,stmt_date desc
) x
group by  acct_id,currency_code
运行结果及报错内容

正确的结果应该是这样的.
| acct_id | currency_code | bal_flag |
| ------ | ------ | ------ |
| A001 | 156 | 201901 | BBS0Z9 |

但是在大量的数据情况下,竟然出现诡异的请况
| acct_id | currency_code | bal_flag |
| ------ | ------ | ------ |
| A001 | 156 | 201901 | BS0Z9B |
第一位的B会跑到最后面去.

我的解答思路和尝试过的方法

为了赶时间我改了下sql:

select acct_id,currency_code, regexp_replace(concant(',',sort_array(collect_list(bal_flag))),',?[0-9]{1,2}:','') bal_flag
from (
select acct_id,currency_code,stmt_date,concat(row_number() over(partition by acct_id,currency_code order by acct_id,currency_code,stmt_date desc),':',bal_flag) bal_flag
from
table
distribute by acct_id,currency_code
sort by acct_id,currency_code,stmt_date desc
) x
group by  acct_id,currency_code
我想要达到的结果

得到的正确的结果就是这样的.
| acct_id | currency_code | bal_flag |
| ------ | ------ | ------ |
| A001 | 156 | 201901 | BBS0Z9 |

有哪位同学知道为啥sort by不行呢?

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-12-15 09:44
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 12月21日
  • 创建了问题 12月13日

悬赏问题

  • ¥20 校园二手交易小程序搭建
  • ¥15 请问在ubuntu用conda创建环境报错怎么能解决
  • ¥15 STM32CubeMX/proteus按键控制指示灯颜色切换
  • ¥20 python,计算区位熵和扩张指数
  • ¥15 Python环境配置
  • ¥15 大四学生的困惑,有偿提问!
  • ¥15 解决页面无法编入索引:被“noindex”标签排除的问题?
  • ¥15 arduino测量电阻
  • ¥15 快手uid转快手号谁能解决 需要开发
  • ¥15 iis部署Django时css不生效,来个真人,ai不好使